我正在使用Jquery表单验证库:
的jquery-validate.js
当用户提交表单时,我向下滑动一个div,该div有一个必须被chekced的复选框才能继续:
if(!$('#agreeConfirm').is(':checked')){
alert('Please tick to agree to our terms and conditions');
$('.termsAgree').slideDown();
return true;
}
这非常有效,因为表单未提交,警报会与显示复选框的slideDown一起显示。但是,如果用户没有选择其中一个选择选项,则表单会提交(尽管会出现“需要此字段”消息。如果我在上面注释掉我的行,则会观察到正确的行为。
我的验证码结构如下:
$("form#register").validate({
rules:{
name:{
required: true,
number: false
},
.....
add1:{
required: true
}
}
});
$('form#register').submit(function(){
...
if(!$('#agreeConfirm').is(':checked')){
alert('Please tick to agree to our terms and conditions');
$('.termsAgree').slideDown();
return false;
}
}
提前致谢。
答案 0 :(得分:0)
您可以在字段的表单验证方法中为复选框添加规则。看this。
答案 1 :(得分:0)
使用jQuery Validate插件时,不应该使用完整的submit
处理函数。这是多余的,也是你冲突的原因。该插件已经自动“处理”submit
事件......
该插件具有submitHandler
回调函数,您可以将其用于提交有效表单时需要完成的任何操作。
更像这样......
$("form#register").validate({
rules:{
name:{
required: true,
number: false
},
.....
add1:{
required: true
}
},
submitHandler: function(form) {
// something to do when the form is valid
if(!$('#agreeConfirm').is(':checked')){
alert('Please tick to agree to our terms and conditions');
$('.termsAgree').slideDown();
form.submit();
};
return false;
},
invalidHandler: function(event, validator) {
// something to do when validation fails
}
});
查看所有回调选项:http://jqueryvalidation.org/validate