我正在使用jQuery验证来验证表单。表格有3个字段。 1个textarea,1个复选框和1个输入类型文本。我想动态验证表单,即当用户在输入类型文本中输入一些值时,则不需要checkbox和textarea,但如果用户没有在其中输入值,则两者都是必需的。我尝试下面的代码:
$("#form").validate({
rules: {
inputTypeText: {required: true},
inputTypeCheckbox: {required: false},
textarea: {required: false},
},
messages: {
inputTypeText: "This field is required",
inputTypeCheckbox: "This field is required",
textarea: "This field is required",
},
submitHandler: function(form) {
form.submit();
}
});
$('#inputTypeText').keyup(function(){
if($(this).val()==''){
$('input[name="inputTypeText"]').rules('add',{required: false});
$('textarea[name="inputTypeCheckbox"]').rules('add',{required: true});
$('input[name="textarea"]').rules('add',{required: true});
}else{
$('input[name="inputTypeText"]').rules('add',{required: true});
$('input[name="inputTypeCheckbox"]').rules('add',{required: false});
$('textarea[name="textarea"]').rules('add',{required: false});
}
});
如下面的截图所示,它会抛出错误。
请帮帮我。 先感谢您。
答案 0 :(得分:2)
利用'依赖'在jQuery验证。
$("#form").validate({
rules: {
inputTypeCheckbox: {
required: {
depends: function(element) {
return $('#input-field').val().length == 0
}
}
},
textarea: {
required: {
depends: function(element) {
return $('#input-field').val().length == 0
}
}
},
},
messages: {
inputTypeCheckbox: "This field is required",
textarea: "This field is required"
}
});
请参阅此fiddle: