Javascript window.frameelement.document.forms[0]的替代方案?

Javascript window.frameelement.document.forms[0]的替代方案?,javascript,asp.net,user-controls,web-user-controls,Javascript,Asp.net,User Controls,Web User Controls,我正在查看当前版本的Chrome和IE 11中失败的一些代码。 这是由于以下行导致的错误: var form = window.frameElement.document.forms[0]; 有误: "JavaScript runtime error: Unable to get property 'forms' of undefined or null reference" 窗口和框架元素存在,但文档为空 上面的上下文是一个弹出窗口,显示一个邮政编码,显示一些结果和一个选择按钮。单击按钮调

我正在查看当前版本的Chrome和IE 11中失败的一些代码。 这是由于以下行导致的错误:

var form = window.frameElement.document.forms[0];
有误:

"JavaScript runtime error: Unable to get property 'forms' of undefined or null reference"
窗口和框架元素存在,但文档为空

上面的上下文是一个弹出窗口,显示一个邮政编码,显示一些结果和一个选择按钮。单击按钮调用一个方法,该方法调用上述行,然后将所选位置分配到一些值中

returnValues(id, name){
  var form = window.frameElement.document.forms[0];
  form.ctl00$MainContentPlaceHolder$uxResControl$uxRenLoc$RenLocCodeField.value = id;
  form.ctl00$MainContentPlaceHolder$uxResControl$uxRenLoc$RenLocNameField.value = name;
  ...
}

有了这些嵌套的用户控件,我对如何向下搜索并将所选值分配给隐藏值RenLocCodeField或RenLocNanmeField感到有点困惑。

使用通常的ASP.NET Javascript查询总是一件痛苦的事

而不是以下行:

form.ctl00$MainContentPlaceHolder$uxResControl$uxRenLoc$RenLocCodeField.value = id;
form.ctl00$MainContentPlaceHolder$uxResControl$uxRenLoc$RenLocNameField.value = name;
假设RenLocCodeField和RenLocNameField是为相应字段生成的ID,则可以在javascript方法中使用以下行

document.getElementById("RenLocCodeField").value = id;
document.getElementById("RenLocNameField").value = name;

我获取JavaScript运行时错误:无法设置未定义或空引用的属性“value”。很可能我在RenLocCodeField上面使用的id不正确。请将其替换为正确生成的Id。您可以从生成的HTML的源代码中找到它。如果我查看源代码名称,但该值为空。我是否可以添加,我必须避免ClientIDMode=Static,因为这是旧的2.0.net应用程序中的代码。