Jquery 验证需要 2 个精确值

Jquery Validation require 2 exact value

我对我的表单使用 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">

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

<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"
});