2014-11-09 2 views
4

Как сделать jQuery проверкой/поддержкой шаблона HTML 5? Было бы здорово, если бы это произошло без указания шаблона в каждом поле.jquery validate with html5 pattern

Я знаю, что смогу это сделать (ниже), но есть ли лучший способ?

$("form").validate({ 
    rules: { 
    "password": { 
     pattern: /[A-Za-z0-9\w]{4,20}/, 
    } 
    } 
}); 

См Fiddle http://jsfiddle.net/2ma8ec6j/

+0

FYI вы должны быть в состоянии удалить '^' из этого шаблона (регулярных выражений всегда полный 'матч()' стиль - см [документы MDN] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#attr-pattern)). – declension

ответ

8

Цитата:

"? Как мне сделать JQuery проверки/поддерживают HTML 5 шаблон"

Он уже делает. См. Ниже

«Было бы здорово, если бы это было без указания рисунка на каждом поле».

Как узнать, какой шаблон относится к этому полю, если вы не указали это где-то?


"... есть способ лучше?"

Вы можете объявить некоторые правила через встроенный HTML-атрибутов. Однако вы можете объявить все правила через опцию rules в пределах .validate() или .rules().

Я не знаю, если это «лучше», как это чисто дело вкуса, но до тех пор, как вы включают additional-methods.js ИЛИ файл pattern.js, плагин JQuery Validate Волю пикап и использовать атрибут HTML5 pattern.

<input type="text" name="somename" pattern="[A-Za-z0-9\w]{4,20}" /> 

DEMO: http://jsfiddle.net/fLxgz9dn/

См: https://github.com/jzaefferer/jquery-validation/issues/785

+0

Пробовал то же, что и ваш, это не помогло мне. пусть отлаживается бит, если не я вставлю скрипт – aWebDeveloper

+0

@aWebDeveloper, он работает, когда вы объявляете его в '.validate()', но не когда вы объявляете его inline? То, что вы еще не показали, должно нарушить его, поэтому нам нужно дождаться, когда вы воспроизведете проблему в jsFiddle. – Sparky

+2

Я думаю, что мне не хватало дополнительных методов – aWebDeveloper