jQuery表单验证问题

时间:2017-04-04 03:01:56

标签: jquery html forms validation

我正在使用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});
   }
});

如下面的截图所示,它会抛出错误。

enter image description here

请帮帮我。 先感谢您。

1 个答案:

答案 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