以下.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功能,這些組件需要驗證。