我在尝试通过 Ajax 调用提交数据的表单中应用 MS JQuery 验证时遇到了麻烦。我正在使用 DataAnnotations 和 MicrosoftMvcJQueryValidation.js 库来执行客户端和服务器端验证。
服务器验证效果很好,我正在尝试通过以下方式启用客户端验证
<% Html.EnableClientValidation(); %>
<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>
<div id="formContainer">
<% using(Html.BeginForm()){ %>
<table class="formTable" width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><label for="Description">Description:</label></td>
<td><%= Html.TextBox("Description", Model.Description) %>
<%= Html.ValidationMessage("Description", "*") %></td>
</tr>
<tr>
<td> </td>
<td>
<%=Html.Button("cancelBtn","Cancel")%>
<input id='createBtn' class='button' type='button' value='Create' />
</td>
</tr>
</table>
<% } %>
</div>
然后通过自定义 Ajax 调用管理 onclick 事件。在我的页面源中,我可以看到该部分
//<![CDATA[EnableClientValidation(...)]
但我想在实际的 Ajax 调用之前验证数据。
相反,通过使用提交输入和
inputCreate.submit(function () {$.ajax...});
执行客户端验证但不执行 ajax 调用,表单通过回发提交。
有没有办法让它们一起工作而不改变 jQuery.validate 库?
可能吗?我对此使用了错误的方法吗?
提前致谢