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

时间:2014-09-08 21:28:34

标签: 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"

存在Window和frameElement,但文档为null。

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

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;
  ...
}

使用这些嵌套的用户控件,我对如何" drill"向下并将所选值分配给隐藏值RenLocCodeField或RenLocNanmeField。

1 个答案:

答案 0 :(得分:0)

使用常见的ASP.NET Javascript查询总是很痛苦!

而不是以下行:

form.ctl00$MainContentPlaceHolder$uxResControl$uxRenLoc$RenLocCodeField.value = id;
form.ctl00$MainContentPlaceHolder$uxResControl$uxRenLoc$RenLocNameField.value = name;

您可以在javascript方法中使用以下行,假设RenLocCodeFieldRenLocNameField是为各个字段生成的ID

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