jquery.validate,jquery.metadata和html5数据

我正在研究使用html5数据属性将validation规则传递给jquery.validate作为停止间隙,直到插件更新为HTML5支持。 我正在使用jquery 1.4.2,jquery.validate 1.7和jquery.validate 2.1。 在我的HTML中,我使用的代码如下:

 

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

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

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

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

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

尝试:

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

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

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

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

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

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

http://jsfiddle.net/Wcu4L/