最近在所做的项目中遇到了如下的情况:由于用户需求特殊,所以公司所封装的标签不符合,需要开发人员自定义一个标签来实现数据的查询。
主要功能为在父页面点击该标签中的一个图片按钮时,会打开一个新的子页面,在子页面中查询到需要的信息后将信息返回到父页面,且父页面不进行刷新。
由于父页面不能够进行刷新操作,所以我所常用的使用action方式进行页面传值的方式就不能用了。所以在子页面返回父页面值时,我采用了如下方法:
假设A.jsp为父页面,B.jsp为子页面,父页面跳转子页面的action为C
如下:
A.jsp
<input name="x" id="x1">
<button id="exclusionCode_helpB" onclick="exclusionCodeSearch(this)">
js部分
function exclusionCodeSearch(obj){
var someValue=window.showModalDialog("C.do","","dialogWidth=800px;dialogHeight=600px;status=yes;help=no;scrollbars=yes");
//将收到的值传递给input,因为我这里本来传递给的是一个table,所以要把值传给对应行的input,所以使用了jQ方式,如果只是简单的传给一个标签,直接用document.getElmentById().value=就行了
$(obj).closest("tr").find("td").eq(2).find("input").get(0).value=someValue[0];
}
B.jsp
这里的函数为点击子页面提交按钮后所执行的函数
function getmsg(){
var data_arr = 所要传递的值;
parent.window.returnValue=data_arr;
window.close();
}