1
我有一個奇怪的行爲,我的jQuery驗證腳本。未使用jQuery觸發的回傳方法驗證
我有一個提交按鈕(ID = _btnSave)的簡單表單。 我驗證三個文本字段:名字,姓氏和電子郵件。
[NOT WORKING] - 當表單填寫正確時,我提交按鈕上的方法不會被觸發:OnClick =「_ btnSave_Click」。
[工作] - 我寫下一個錯誤的電子郵件地址,然後我改正它,點擊提交按鈕,我的服務器端方法被調用。
總結情況:如果我不觸發電子郵件驗證,_btnSave_Click不會被解僱。
頁面在兩種情況下均刷新。
<asp:Button ID="_btnSave" OnClick="_btnSave_Click" CssClass="button big default" runat="server" Text="<%$ Resources:Resource, SAVE_CHANGES %>" />
$("#form1").validate({
rules:{
<%=_txtEmail.UniqueID %>:{ minlength:5, required:true, email:true,
remote: {
url: "/Services/ValidatorService.asmx/ValidateEmail",
dataType:"json",
type:"post",
data: {
email: function() { return $("#<%=_txtEmail.ClientID%>").val();},
contactUID: function() { return $("#<%=_hidContactUID.ClientID%>").val();}
}
}
},
<%=_txtFirstName.UniqueID %>: { required:true},
<%=_txtLastName.UniqueID %>: { required:true},
},
invalidHandler: function(form, validator) {
errorContainer.fadeIn();
},
errorElement: "span",
errorClass:"errortxt",
highlight: function(element, errorClass) {
$(element).parent().parent().addClass("error");
},
unhighlight: function(element, errorClass) {
$(element).parent().parent().removeClass("error");
if (this.numberOfInvalids() == 0) {
errorContainer.fadeOut();
}
},
messages: { <%=_txtEmail.UniqueID %>: { remote : "<%=EmailUsed %>" }
},
errorPlacement: function(error, element) {
error.insertAfter(element);
}
});
$("input").click(function(){_defaultButton = $("#<%=_btnSave.ClientID%>");});
});
感謝您的幫助。
格雷格
我認爲你應該使用ClientID而不是UniqueID,儘管你應該有比這更嚴重的問題。總體情況如何?涉及的任何UpdatePanels?你提交的控件是什麼樣的? – 2011-01-10 15:22:11