Почему jQuery Validate игнорирует шаблон ввода Html? - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь использовать jQuery validate для проверки соответствия входного шаблона входному, но похоже, что шаблон не проверяется.

HTML:

<form id="testform">
    <input id="MyInput" 
           name="MyInput"
           pattern="[A-Za-z0-9-_]"
           minlength="6"
           data-msg-pattern="Wrong input"
           data-msg-minlength="Too short"
           data-msg-required="Input required"
           required/>
    <button class="btn btn-primary" id="AddMyInput">Add</button>
</form>

Javascript:

$("#AddMyInput").click(function () {
  event.preventDefault();
  myvalidator = $("#testform").validate();
  if (myvalidator.form()) {
    alert("Great!"); 
  } 
});

Ссылка на пример: JSFiddle

Я пытаюсь ограничить ввод буквенно-цифровыми символами плюс - и _. Но похоже, что шаблон игнорируется jQuery Validate, попробуйте добавить «Привет, ребята!» в поле ввода он выдаст сообщение «Отлично!», но ввод неверен.

1 Ответ

1 голос
/ 03 апреля 2019

По умолчанию правило pattern не является частью этого плагина. Однако вам просто нужно включить файл additional-methods.js , чтобы добавить его.

Ваш jsFiddle: jsfiddle.net / 8mhzrdyv /


Как примечание, вы не должны инициализировать плагин внутри обработчика click. Глядя на вашу простую демонстрацию, вам не нужен обработчик click. При вызове .validate(), который инициализирует плагин, событие click автоматически обрабатывается самим плагином.

DEMO: jsfiddle.net / 8mhzrdyv / 1 /

$(function() {
    $("#testform").validate();  // initialize plugin
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...