以下.NET 3.5的代码,放置在一个aspx文件,当页面加载(用于启用谁JavaScript的用户)将触发JavaScript错误:验证在<noscript>导致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用户,我用一些不同的UI组件替换了一些AJAX功能,这些组件需要验证。