showmodaldialog回穿值问题
有2个页面,父页面是这样的:
1.aspx
function select_open(obj)
{
var txt=showModalDialog( "../Share/Emp_Plural.aspx ",window, "dialogWidth:600px;dialogHeight:350px;scrollbars:no;help:no; ");
var add=document.getElementById(obj);
add.value=txt;
}
obj是一个text文本框,用来接收对话框返回值的.
对话框页面是这样的:
2.aspx
...
<input id= "confirm " type= "button " value= "確認 " class= "button " onclick= "send() " />
<input id= "cancel " type= "button " value= "取消 " class= "button " onclick= "window.close() " />
...
function send()
{
var lst2=document.getElementById( "lib_emp2 ");
var len=lst2.length;
var txt= " ";
for(var i=0;i <len;i++)
{
txt+=lst2.options(i).text+ " ";
}
//傳值
window.returnValue=txt;
window.close();
}
这里把txt作为返回值传给父窗体
问题是:我如果在弹出的对话框中选择了内容,传回去的值正常;但是如果我点“取消”,那么在父窗体中的文本框就会被赋值成“undefine”,刚才有的值也没了,而且点对话框的“X”按钮时也是这样,怎么解决?
------解决方案--------------------那是因为点了关闭或者取消没有给returnValue赋值
你可以不使用returnValue,
直接调用父窗口的函数
或者给父窗口一个变量赋值
具体showmodaldialog的用法请参考
http://dev.csdn.net/article/27760.shtm
------解决方案--------------------var add=document.getElementById(obj);
add.value=txt;
判断一下返回值没有 没有就不用 add.value=txt; 了