данные jquery.validate, jquery.metadata и html5 - PullRequest
5 голосов
/ 05 ноября 2010

Я изучаю использование атрибутов данных html5 для передачи правил проверки jquery.validate в качестве пробела до тех пор, пока плагин не будет обновлен с поддержкой HTML5.Я использую jquery 1.4.2, jquery.validate 1.7 и jquery.validate 2.1.В моем HTML я использую такой код:

<input name="foo" type="text" data-validate="{required:true,digits:true}" />

В моем jQuery я делаю следующее:

<script type="text/javascript">
$.metadata.setType ("html5");
$(function ()
{
    $('#myForm').validate ({debug:true});
});
</script>

Это просто вызывает сообщение об ошибке validator.methods[метод] не определен

Я сделал метаданные () для элемента с атрибутом data-validate, и я получил возвращенный объект с именем validate с моими установленными в нем атрибутами, поэтому я знаю, что метаданные находятатрибут и загрузка из него, но плагин проверки не может справиться с этим.Если я вернусь к class = "{validate: {...}}" и закомментирую строку, которая настраивает метаданные для использования HTML 5, все это работает так, как должно.

Я что-то не так делаю или есть проблема с плагинами проверки и / или метаданных?

Ответы [ 2 ]

9 голосов
/ 29 февраля 2012

В случае, если кто-то сталкивается с этим, используя более новую версию jQuery, jQuery Validate и плагин метаданных jQuery, вся документация, которую я нашел для совместного использования, устарела. Хотя плагин jQuery Validate все еще может использовать метаданные jQuery, более новые версии метаданных jQuery больше не поддерживают «html5» как тип, поскольку jQuery теперь изначально поддерживает атрибуты данных HTML5 в качестве источника метаданных. Тем не менее, jQuery Validate не был обновлен для использования этого.

Решением для этого (по крайней мере до тех пор, пока jQuery Validate не будет обновлен для поддержки встроенной поддержки метаданных с использованием атрибутов данных, является использование типа 'attr' и указание непосредственно на ваш атрибут данных. Например:

$.metadata.setType("attr", "data-validate");
$("form").validate();

Обратите внимание, что нет необходимости передавать метатег, потому что библиотека метаданных напрямую обращается к правильному атрибуту для чтения значений. Вот модифицированный jsFiddle с использованием обновленных версий всех библиотек:

http://jsfiddle.net/Wcu4L/

4 голосов
/ 05 ноября 2010

Попробуйте:

$.metadata.setType("html5");
$('#myForm').validate({
    meta: "validate"
});

http://jsfiddle.net/petersendidit/5YND2/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...