document.getElementById(’id’)。值在ASP.net javascript函数中失败

隐藏的字段:

  

javascript函数:

 function doGetWave(obj) { //debugger var brk = document.getElementById('hidBT').value; //var brkId = document.getElementById('hidBI').value; var org = document.getElementById('hidOrg1').value; session = obj.options[obj.selectedIndex].value; sWaveText = obj.options[obj.selectedIndex].text; if (brk == "") { window.location.href = "url.aspx?multiple=" + org + "&wave=" + sWaveText + "&strORGId=multiple"; } else { window.location.href = "url.aspx?multiple=" + org + "&wave=" + sWaveText + "&BRKType=" + brk + "&strORGId=multiple"; } } 

代码隐藏:

 protected void Page_Load(object sender, EventArgs e) { hidOrg1.Value = strOrgId; hidBT.Value = ""; } 

javascript函数在var brk = …时出现“Object Expected”错误,我无法弄清楚它出错的地方。 拉出我的头发! 🙁

当您将runat="server"放在标准HTML标记中时,ASP.Net会破坏ID以确保它是唯一的(就像它对自己的控件一样)。 您需要使用ASP.Net分配的ID访问该元素。 试试这个:

 var brk = document.getElementById('<%= hidBT.ClientID %>').value; var org = document.getElementById('<%= hidOrg1.ClientID %>').value; 

附加信息

如果您使用的是4.0框架,则可以在元素,页面或应用程序级别更改此行为。 查看此链接以获得体面的小教程。 如果选择将ClientIdMode设置为Static ,则可以按最初分配的ID访问元素(不会更改它们)。