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" });
如果有人使用更新版本的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: