jQuery验证需要2个精确值

时间:2018-12-21 07:43:19

标签: jquery jquery-validate

我对表单使用jquery验证,我需要为输入的“ 6或13”设置确切的长度。

我试图捕获输入的长度并手动显示错误,问题是,如果输入无效,则我的手动插入错误和jquery验证程序错误会显示在一行中。然后,我尝试清空keypress和输入change上的自定义错误,但是如果我单击屏幕或使用其他操作,它将隐藏我的自定义错误。

这是我的代码:

jQuery.validator.setDefaults({
  debug: true,
  success: "valid"
});

$().ready(function() {
  $("#My_Form_ID").validate({
    rules: {
      anyID: {
        required: true,
        number: true,
        minlength: 6,
        maxlength: 13
      }
    },
    messages: {
      anyID: {
        required: "Some text",
        minlength: "Some text"
      }
    }
  });
});
<input type="text" id="anyID" maxlength="13">

1 个答案:

答案 0 :(得分:1)

您可以像下面的示例一样添加自定义验证方法。

<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
<link rel="stylesheet" href="https://jqueryvalidation.org/files/demo/site-demos.css">
</head>
<body>
<form id="myform">
<input type="text" id="field" name="field">
<br>
<input type="submit" value="submit">
</form>
<script>
jQuery.validator.setDefaults({
  debug: true,
  success: "valid"
});
jQuery.validator.addMethod("len6or13", function(element) {
  return element.length==6 || element.length==13 ? true : false;
}, jQuery.validator.format("Input data must be 6 or 13 characters long"));
$( "#myform" ).validate({
  rules: {
    field: {
      required: true,
      number: true,
      len6or13: true
    }
  }
});
</script>
</body>
</html>

否则,您可以简单地通过指定字段选择器来忽略此字段,并自行处理该字段,如下所示:

$("#myform").validate({
  ignore: ".ignore"
});