jQuery If myform.valid() is true then fire another jQuery function?
I have a jQuery function that i would like to execute only if the form validation is true
I have the validation and other jQuery working fine. the problem is now both validation and other function are executing same time. I would like to run the other function only if the form validation is true. here is my script<script>
$(document).ready(function () {
$.validator.addClassRules({
fileName: {
required: true
}
});
$("#myform").validate();
if ($("#myform").valid()) {
$(function () {
$('#myform').submit(function () {
var cboxes = ($('input:checkbox:checked').filter(":checked").length);
var nboxes = ($(":checkbox:not(:checked)").length);
if ((cboxes > 0) && (nboxes > 0)) {
confirm('You have Checked only few l开发者_运维百科ocations among the List. \n Are you sure, you do not want to Prescribe from the other locations? ');
} else if (cboxes == 0) {
alert('Please select atleast One Address \n Where you would prefer to prescribe from.');
return false;
}
else {
return true;
}
});
});
}
});
</script>
please advise how can i get this done?
If you're using the jQuery validate plugin then the valid() method returns a boolean to indicate whether or not the form validated successfully, so you could just do:
if ($("#myform").valid()) {
CallSomeOtherFunction();
}
If you're using standard plugin, such code should be supported:
$(document).ready(function() {
$("#myForm").validate({
submitHandler: function(form) {
SomeFuncHere();
}
});
})
The code in submitHandler
should be called after successful validation.
Edit: based on your code, try this instead:
$("#myform").validate({
submitHandler: function(form) {
var cboxes = ($('input:checkbox:checked').filter(":checked").length);
var nboxes = ($(":checkbox:not(:checked)").length);
var flag = false;
if ((cboxes > 0) && (nboxes > 0)) {
flag = confirm('You have Checked only few locations among the List. \n Are you sure, you do not want to Prescribe from the other locations? ');
} else if (cboxes == 0) {
alert('Please select atleast One Address \n Where you would prefer to prescribe from.');
}
else {
flag = true;
}
return flag;
}
});
You have to use .validate().form()
if (!$("#myform").validate().form()) {
return false; //doesn't validate
}else
{
//form is validated do your work
}
精彩评论