2011-01-19 154 views
1

我使用asp.net验证控件哪些工作正常。自从我引入了一个HTML复选框之后,应该在提交表单之前勾选它。我对这个函数如下:验证对复选框和aspnet验证

function terms(form) { 
var terms = document.getElementById("chkTerms").checked; 
var errorsArray = new Array(); 

if (terms == false) { 
    //alert("Terms not checked (works)"); 
    errorsArray.push("You must agree to the terms and conditions."); 
    if (errorsArray.length) { 
     document.getElementById("termsOutput").innerHTML = errorsArray.join("\n") + "<br />"; 
     return false; 
    } 
} 
else { 
    document.getElementById("termsOutput").innerHTML = ""; 
}} 

它被称为如下:

<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClientClick="return terms(form)" /> 

我的问题是,似乎我可以使用asp.net验证或自定义复选框的验证我写的。然而,表单发布后,asp.net验证激发!任何人都知道我在做什么错了?

回答

0

ASP.NET按钮控件使用随后触发客户端验证的WebForm_DoPostBackWithOptions方法。通过向按钮客户端单击处理程序添加返回项(表单),此语句在回发语句运行之前返回(它调用Page_ClientValidate),因此您看不到验证。做一个(如果!条款(表单))返回false),而只会在取消时取消。

HTH。

+0

OnClientClick =(if!terms(form))return false)? – conflabuk 2011-01-19 15:03:19