我有一個簡單的表單,它使用jQuery驗證來通知用戶輸入錯誤等。當我添加一個ASP.NET CustomValidator到表單時,它會導致頁面回發並跳過jQuery驗證。我需要表單才能提交給服務器,直到客戶端驗證無誤。有沒有人見過這個?ASP.NET的CustomValidator控件干擾表單提交上的jQuery驗證
這是我的形式:
<form id="form1" runat="server">
<core:standardscriptmanager runat="server" />
<div>
<asp:textbox id="Email" name="Email" runat="server" cssclass="_RegisterFormValidate FormField Email {required:true, email:true, messages:{required:'You must enter an email address.', email:'Please enter a valid email address.'}}" maxlength="200" columns="75" width="98%" tooltip="Your email address"></asp:textbox>
<br /><br />
<core:recaptcha runat="server" />
<br />
<asp:linkbutton id="CreateAccount" runat="server" onclick="CreateAccount_Click" text="create"></asp:linkbutton>
</div>
</form>
這是核心:包含自定義驗證驗證碼控制:
<script type="text/javascript"
src="http://www.google.com/recaptcha/api/challenge?k=XXXKEY">
</script>
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=XXXKEY"
height="300" width="500" frameborder="0"></iframe><br>
<textarea name="recaptcha_challenge_field" rows="3" cols="40">
</textarea>
<input type="hidden" name="recaptcha_response_field"
value="manual_challenge">
</noscript>
<asp:customvalidator id="RecaptchaValidator" runat="server" controltovalidate="DummyInput" onservervalidate="ServerValidate" validateemptytext="true" />
<asp:textbox id="DummyInput" runat="server" cssclass="Hidden"></asp:textbox>
注:DummyInput是唯一有使的CustomValidator快樂,我的ServerValidate事件正確處理驗證碼結果。
CustomValidator的ServerValidate部分在回發期間工作正常,但我需要它停止干擾客戶端驗證。如果我從recaptcha控件中移除CustomValidator,一切都會很好。
我是否需要在CustomValidator的clientvalidationfunction中調用jquery-validate來做些事情,以使其正確工作?
任何想法或建議將受到歡迎。
這並不完全讓我在我需要的地方,但讓我走上正確的軌道。謝謝您的幫助。 – 2011-01-11 17:08:52