在我的WebForms應用程序中,我有一個CustomValidator
控件。該控件執行我創建的JavaScript函數。如果這個函數返回false,表單將不會提交。該驗證器與標準RequiredFieldValidator
和RegularExpressionValitors
一起使用。WebForms - 自定義驗證器不再工作
然而,現在這用於完美地工作,即使JavaScript函數返回false
,頁面仍然會提交。由於某種原因,CustomValidator
被忽略。只要RequiredFieldValidator
和RegularExpressionValidator
控件通過,即使JavaScript函數在提交時顯示錯誤,頁面也會提交。
我調試了JavaScript函數,它肯定會返回false
。我沒有使用任何服務器端代碼與我的CustomValidator
。
的JavaScript:
function validateForm() {
if (document.getElementById("DDApplicationID").selectedIndex > 0
&& document.getElementById("div_applicationType").style.display != "none") {
return true;
}
else if (document.getElementById("DDApplicationID").selectedIndex > 0) {
var valid = true;
((validateTrainStation() == false) ? valid = false : valid);
((validateSupportType() == false) ? valid = false : valid);
((validateHomeStatus() == false) ? valid = false : valid);
((validateOtherNationality() == false) ? valid = false : valid);
((validateOtherHomeStatus() == false) ? valid = false : valid);
((validateSortCode() == false) ? valid = false : valid);
((validateCareLeaverMessage() == false) ? valid = false : valid);
return valid; //returns false in JavaScript debugger on Chrome
}
}
Web窗體的.aspx
<form id="Application" runat="server">
<asp:CustomValidator ID="CustomValidator1" runat="server" ValidationGroup="AllValidation" ClientValidationFunction="validateForm"></asp:CustomValidator>
<asp:Button ID="SaveLSFApplication" runat="server" Text="Submit Application" OnClick="saveApplication" ValidationGroup="AllValidation" />
</form>
的WebForms .aspx.vb
Sub saveApplication(ByVal sender As Object, ByVal e As EventArgs)
If Page.IsValid Then
'--- do logic
End If
End Sub
我知道只是客戶端驗證不夠好,但它的對於只有在滿足特定條件時纔是非可選形式的部分,即當用戶在dro中選擇「其他」時我們希望他們在文本框中輸入一個理由。