我有一个从父应用程序打开的子浏览器窗口(aspx)。子窗口有一些控件和一个文本框。当用户完成时,他/她单击一个按钮,以下代码从子窗口获取值并填充父级,如下所示:
window.opener.document.form1.InputContainer$LetterInput$txtReasons.value = txtVal;
这适用于我在父页面上的文本框。但现在,我需要填充一个列表框,并没有太多运气。我尝试过这两种方法,但无济于事:
o.text = txtVal;
o.value = "1";
window.opener.document.form1.InputContainer$LetterInput$lstReasons.add(o);
window.opener.document.form1.InputContainer$LetterInput$lstReasons.add("Text", "Value");
我得到了“htmlfile:不支持这样的接口”。
有人有什么想法吗?
谢谢,
杰森
答案 0 :(得分:0)
var newOption = document.createElement('option');
newOption.value = textbox.value; // The value that this option will have
newOption.innerHTML = textbox.value; // The displayed text inside of the <option> tags
// Finally, add the new option to the listbox
window.opener.document.form1.InputContainer$LetterInput$lstReasons.appendChild(newOption);
答案 1 :(得分:0)
好的,稍作修改但找到了解决办法!
首先,在父aspx中创建一个函数,如下所示:
function NewOption(newVal)
{
//alert("The entry is: " + newVal);
var sel = document.getElementById("<%= MyListbox.clientID %>");
sel.options[sel.options.length]=new Option(newVal, newVal, true, true);
}
然后,从子页面调用该函数,如下所示:
function SendValues()
{
var txtVal = document.form1.txtReasons.value;
var sel = window.opener.NewOption(txtVal);
}
还有一两个扭结(它只传递文本,而不是值),但可以通过添加额外参数轻松修复...
希望那里的其他人可以使用它!