【发布时间】:2009-02-16 12:32:35
【问题描述】:
以下 .NET 3.5 代码放置在 aspx 文件中,将在页面加载时触发 JavaScript 错误(适用于启用 JavaScript 的用户):
<noscript>
<asp:TextBox ID="txt" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="txt_RequiredFieldValidator" runat="server"
ControlToValidate="txt"></asp:RequiredFieldValidator>
<asp:Button ID="btn" runat="server" Text="Button" />
</noscript>
发生错误是因为 ASP.NET 验证器控件生成的 JavaScript 在下面的第二个代码行之前不包含空检查:
var ctl00_body_txt_RequiredFieldValidator =
document.all ?
document.all["ctl00_body_txt_RequiredFieldValidator"] :
document.getElementById("ctl00_body_txt_RequiredFieldValidator");
ctl00_body_txt_RequiredFieldValidator.controltovalidate = "ctl00_body_txt";
任何人都可以提出解决方法吗?
脚注:我为什么要这样做?对于我的非 JavaScript 用户,我将一些 AJAX 功能替换为一些需要验证的不同 UI 组件。
【问题讨论】:
标签: asp.net javascript validation graceful-degradation noscript