I created a script that uses the jQuery validation plugin. My validation script works fine. But I would like to have my form be validated first before my Ajax call is made. Is there a way to integrate my Ajax call with the jQuery validation plugin?
Here's some info on the plugin
My script is here:
jQuery(document).ready(function($) {
/* set no cache */
$.ajaxSetup({ cache: false });
var $form = $("form"),
$successMsg = $(".alert");
$.validator.addMethod("letters", function(value, element) {
return this.optional(element) || value == value.match(/^[a-zA-Z\s]*$/);
});
$form.validate({
rules: {
firstname: {
required: true,
minlength: 2,
letters: true
},
lastname: {
required: true,
minlength: 2,
letters: true
}
},
messages: {
firstname: "Please specify your first name (only letters and spaces are allowed)",
lastname: "Please specify your last name (only letters and spaces are allowed)"
},
submitHandler: function() {
$successMsg.show();
}
});
$('#submitButton').click( function(e) {
$.ajax({
url: '/form/submit',
type: 'post',
dataType: 'json',
data: $('#Form').serialize(),
success: function(data) {
// message
},
error: function(xhr, status, error){
//message
}
// Prevent default form action
});
});
});
My html code is here:
<form id="Form">
<input class="fname" id="firstname" name="firstname" type="text" />
<input class="lname" id="lastname" name="lastname" type="text" />
<button class="btn btn-default" id="submitButton" type="submit">Submit</button>
</form>