当用户从父窗口点击按钮时,我使用JavaScript打开一个新窗口(子)。
在新窗口(子)上,我有文本框和按钮,我需要获取文本框的值并在用户点击按钮时传递给父窗口,在关闭子窗口时,我需要将更新后的值插入到父窗口中窗口(没有刷新父窗口)所以我可以将我的值显示到父窗口的某个隐藏字段/标签,我该怎么做?
1-父窗口有按钮,单击子窗口打开 2-子窗口有文本框和按钮,当点击按钮时,子项将发送到服务器更新数据库,然后将文本框的值传递给父窗口而不刷新父窗口,并关闭子窗口。
我该怎么做?它可以用简单的JavaScript完成吗? 如果我使用jquery这样做,我会获得更多好处吗? 任何人都可以建议我怎么做?
答案 0 :(得分:14)
我建议使用jQuery dialog widget而不是实际的新窗口。这样可以更容易地访问新值,因为它位于同一窗口的DOM中。只需从关闭窗口的按钮中获取回调,就可以从对话框中包含的DOM元素中提取值,并将其复制到表单上的目标DOM元素。
$('#popupDialog').dialog({
modal: true,
autoOpen: false,
buttons: {
'Cancel': function() {
$(this).dialog('close');
},
'Accept': function() {
$('#mainForm input#target').val( $(this).find('#widgetName').val() );
$(this).dialog('close');
}
});
$('#popupButton').click( function() {
$('#popuDialog').dialog('open');
});
<div id="popupDialog" title="Input a new widget name">
<p>
<label for="widgetName">Please input a new widget name:</label>
<input type="text" id="widgetName" />
</p>
</div>
答案 1 :(得分:4)
绝对:你正在寻找JS原生* 开启者属性(讨论here),不需要jquery(尽管它可能会在那里包装)。
Windows打开和关闭是一种非常非2.0的处理方式,您是不是更喜欢使用灯箱或类似的页内HTML对话框? jQuery对话框肯定是前进的方向。
* ,如果不是标准定义,则普遍支持