在完成所有验证时调用成功jQuery验证插件的函数
问题描述:
<script id="demo1" type="text/javascript">
jQuery(document).ready(function() {
var validator = jQuery("#login").validate({
rules: {
pwd: "required",
log: {
required: true,
email: true,
},
},
messages: {
pwd: "Please enter password",
log: {
required: "Email is required",
email: "Please enter a valid Email Address",
}
},
errorPlacement: function (error, element) {
if (element.is(":radio"))
error.appendTo(element.parent().next().next());
else if (element.is(":checkbox"))
error.appendTo(element.parent().next("span#error"));
else
error.appendTo(element.parent().next("div#error"));
//error.appendTo ('div#error').show().fadeOut(4500);
},
success: function (label) {
// set as text for IE
label.html(" ").addClass("checked");
}
});
});
</script>
我有此脚本来验证窗体,此脚本为我的窗体运行良好,我想在验证所有字段时运行函数,输入是正确的,如果我调用函数内的成功,然后它每次运行时,单个输入验证,但我想调用它后,所有的输入是正确的,请帮助,我尝试不同的方式从最后一小时,没有结果。 。在完成所有验证时调用成功jQuery验证插件的函数
答
使一个计数器:
变种successfulValidations = 0;
添加到它在你的成功的功能:
成功:函数(标签){ successfulValidations ++; }
验证后,核对验证所有元素的个数:
if(validatedElementsCount === successfulValidations) {
doSomething();
}
答
你可以使用validator.form()方法来验证表单
var validator=$("#find_your_form").validate({onsubmit: false});
......................................
if(validator.form()){
//Validate passed
ohYeh();
} else {
//Validate
ohCrap();
}
答
我已经曾经有类似的问题。也许我的方法也可以帮助你。
验证时,每个输入都添加了一个valid
或invalid
类。
然后我就环槽的输入和检查,如果他们都是有效的:
function allValid(inputs) {
for(var x = 0; x < inputs.length; x++) {
if(!$(inputs[x]).hasClass('valid')) {
return false;
}
}
return true;
};
var myInputs = $('#MyForm input');
if(allValid(myInputs)) {
// All inputs are valid!
}
答
下面的代码为我工作
jQuery(document).ready(function() {
var validator = jQuery("#login").validate({
rules: {
pwd: "required",
log: {
required: true,
email:true,
},
},
messages: {
pwd: "Please enter password",
log: {
required: "Email is required",
email:"Please enter a valid Email Address",
}
},
submitHandler: function(form) {
// call your function
$("#login")[0].submit();
}
});
});