2011-01-19 151 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