I'm having troubles trying to apply MS JQuery Validation in my forms where I want to submit data via an Ajax call. I am using DataAnnotations and MicrosoftMvcJQueryValidation.js library to perform client-side and server-side validation.
Server validation works great and I'm trying to enable Client validation by mean of
<% 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>
The onclick event is then managed via a custom Ajax call. In my page source I can see the section
//<![CDATA[EnableClientValidation(...)]
but I would like to validate data before the actual Ajax call.
At the contrary by using a submit input and
inputCreate.submit(function () {$.ajax...});
client-side validation is performed but no ajax-call is performed, form is submitted via postback.
Is there any way to make them work together without changing jQuery.validate library?
Is it possible? Am I using a wrong approach to this?
Thanks in advance