jquery.validate,jquery.metadata和html5数据

Gor*_*onM 5 html validation jquery html5 metadata

我正在研究使用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}" />
Run Code Online (Sandbox Code Playgroud)

在我的jQuery中,我正在做以下事情:

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

这只会导致错误消息,validator.methods [method]未定义

我确实在元素上使用了data-validate属性做了一个元数据(),我得到了一个名为validate的对象,其中设置了我的属性,所以我知道元数据是找到属性并从中加载,但是validate插件可以似乎处理它.如果我回到class ="{validate:{...}}"并注释掉配置元数据以使用HTML 5的行,那么它都可以正常工作.

我做错了什么,或者验证和/或元数据插件是否存在问题?

Mic*_*ire 9

如果有人使用更新版本的jQuery,jQuery Validate和jQuery元数据插件来运行这个,我发现使用这些文档的所有文档都已过时.虽然jQuery验证插件仍然可以使用jQuery的元数据,元数据的jQuery的较新版本不支持"HTML5"作为一种类型了,因为现在的jQuery本身就支持HTML5数据 - 属性作为元数据的来源.但是,jQuery Validate尚未更新以使用它.

针对此的解决方案(至少在更新jQuery Validate以支持使用数据属性对元数据的内置支持之前)是使用'attr'类型并直接指向您的数据属性.例如:

$.metadata.setType("attr", "data-validate");
$("form").validate();
Run Code Online (Sandbox Code Playgroud)

请注意,不需要传递"meta"标记,因为元数据库直接转到正确的属性来读取值.这是一个使用所有库的更新版本的修改过的jsFiddle:

http://jsfiddle.net/Wcu4L/


Pet*_*dIt 4

尝试:

$.metadata.setType("html5");
$('#myForm').validate({
    meta: "validate"
});
Run Code Online (Sandbox Code Playgroud)

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