在两个窗体之间传递消息。即:在父窗体处查询需要的数据。子窗体显示数据,在子窗体中选择一条需要数据,然后把其主健值回传给父窗体,后子窗体关闭。
注意:在子窗体处只能有一条数据被选中。
代码如下:
function check(obj,xh){ var el = document.getElementsByTagName("input"); for(var i=0;i<el.length;i++){ if((el[i].type=="checkbox")&&(el[i].name!=obj.name)){ el[i].checked=false; } } window.returnValue = xh ; window.close() ; }
注意:有的IE中window.close() ; 要结合<base target="_self">使用。否则关闭不了 showModalDialog个窗体。<base target="_self">的存放位置为<html>与<body>之间。
showModalDialog和showModelessDialog数据传递技巧:
现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name
一般的传递方式:
window.showModalDialog("filename.htm",var_name)
//传递var_name变量
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments)//读取var_name变量
window.dialogArguments="oyiboy"//设置var_name变量
这种方式是可以满足的,但是当你想在操作var_name同时再操作第二个变理var_id时呢?就无法再进行操作了。这就是这种传递方式的局限性。
以下是我建议使用的传递方式:
window.showModalDialog("filename.htm",window)
//不管要操作什么变量,只直传递主窗口的window对象
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments.var_name)//读取var_name变量
window.dialogArguments.var_name="oyiboy"//设置var_name变量
同时我也可以操作var_id变量
alert(window.dialogArguments.var_id)//读取var_id变量
window.dialogArguments.var_id="001"//设置var_id变量
同样还可以对主窗口的任何对象进行操作,如form对象里的元素。
window.dialogArguments.form1.index1.value="这是在设置index1元素的值"