在子窗口关闭后更新父窗口上的HiddenFiled值Javascript,VS2005 c#
我有一个子窗口和一个带有hiddenfield hdnSelectedFields的父窗口。我正在更改hdnSelectedFields的值。在子窗口关闭后更新父窗口上的HiddenFiled值Javascript,VS2005 c#
代码:
String vStrScript = "<script language=javascript>function CloseParent() {window.opener.document.getElementById('hdnSelectedFields').Value = '" + tempstring + "'; alert(window.opener.document.getElementById('hdnSelectedFields').Value);window.close(); } window.opener.document.forms[0].submit(); setTimeout(CloseParent, 5);</script>";
当我关闭hdnSelectedFields值设置窗口,但是当我访问父窗口的hdnSelectedFields页面加载它显示hdnSelectedFields的旧值。
如果您在JavaScriptit中看到警报,则会在父装载完成时显示更新的hdnSelectedFields值。
任何建议如何访问父页面载入的hdnSelectedFields更新值。
迪
你想输入框的属性是value
,不Value
。
我认为这不是问题,因为我已经提到隐藏字段的值是正确设置的。但是当父页面加载完成后它会更新。 我想检索Parent page_load事件中的更新值 Dee – Dee 2010-01-30 05:55:07
window.opener.$('#hiddenvariable').val('somevalue');
- 脱离上下文 – 2010-02-18 07:52:58
它是如何脱离上下文的。这个答案有什么不对吗? – Vicky 2010-02-19 05:35:47
重新阅读这个问题!你的答案不符合任何要求... :( – 2010-02-25 09:09:01
首先:您应该选择#
选择器,因为每个定义的ID必须是唯一的!
$(document).ready(function() {
var hiddenField = $('#hdnSelectedFields');
var hiddenFieldValue = hiddenField.val();
alert(hiddenFieldValue); // for debug reason
});
编辑:
你的致命错误是以下几点:
function CloseParent() {
window.opener.document.getElementById('hdnSelectedFields').Value = '" + hdnCheckedAttribute.Value + "';
window.close();
}
window.opener.document.forms[0].submit();
setTimeout(CloseParent, 15);
所以,会发生什么
$(document).ready(function() {
setTimeout(function() {
var hiddenField = $('#hdnSelectedFields', window.opener);
// you could do some checking here, eg. hiddenField.length for ensuring existance
hiddenField.val('new value');
alert(hiddenField.val()); // for debug reason
window.opener.document.forms[0].submit();
window.close();
}, 5);
});
在揭幕战
:
在弹出当你打开弹出窗口? ... biiig鼓卷!
- 提交表单
- 等待15ms的
- 设置hiddenField
某处PT 1和3你对你的首战$(document).ready()
发生......之间
失踪3篇(因并行性),没有值设置为hiddenField。 你可能会看到我的解决办法在我的解决方案为您的弹出窗口,其中指出:
setTimeout(function() {
[...]
window.opener.document.forms[0].submit();
window.close();
}, 5);
我认为你误解了我的问题。我已成功设置隐藏的字段值从孩子。问题是在访问父母时。 如果您在我的脚本中看到警报消息这会返回我更新的值。但父母后面的脚本不显示更新 – Dee 2010-02-18 07:45:33
啊......你可能还没有更新......我已经在前一段时间添加了正确的代码/评论! – 2010-02-18 07:46:41
我已经把弹出的代码在asp网页 像这样 按钮提交 字符串vStrScript =““; ClientScript.RegisterStartupScript(this.GetType(),“close”,vStrScript); 和opener代码,如你所建议的仍然我没有得到更新的价值。 – Dee 2010-02-18 08:37:12
不要双击后请。合并。 – 2010-02-18 12:58:32