Проверка Jquery требует 2 точных значения - PullRequest
0 голосов
/ 21 декабря 2018

Я использую проверку 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 голосов
/ 21 декабря 2018

Вы можете добавить свой собственный метод проверки, как я сделал в примере ниже.

<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"
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...