我正在使用jQuery验证插件并根据设计需要放置错误占位符。使用以下代码:
<label for="fav[]" class="error" generated="true"></label>
<input id="field-11" name="fav[]" value="252483" type="checkbox">
<input id="field-12" name="fav[]" value="252484" type="checkbox">
但客户抱怨标记无效。以下是错误:
Attribute generated not allowed on element label at this point.
The for attribute of the label element must refer to a form control.
我正在使用HTML 5.我知道在html 5中我们可以使用data-{attribute}
的自定义属性。但由于generated
是jquery验证插件属性,因此我们无法将data-
附加到其中。
那么,有谁知道如何解决上述w3验证错误?非常感谢您的帮助。
答案 0 :(得分:1)
您可以通过简单地删除“占位符”来解决您的问题......这完全没必要。 jQuery Validate插件会根据需要自动创建错误label
标记。
如果您希望label
出现在输入之前,请使用the errorPlacement
callback function ...
$('#myform').validate({
// your other options and rules,
errorPlacement: function(error, element) {
error.insertBefore(element);
}
});
DEMO:http://jsfiddle.net/8gQ7U/1/
默认情况下,label
会有class="error"
,但也可以使用errorClass
选项进行操作。重点是,您可以完全操纵插件使用您的标记而无需手动编写标记。
引用OP:
“但
generated
是jquery验证插件属性...”
检查the source code of version 1.11.1 the plugin显示没有这样的事情。
generated
属性曾经是 previous versions of this plugin的一部分,但不再是。{/ p>
因此,如果您仍然坚持手动编写自己的label
标记,只要使用插件的1.11.1版本,就可以安全地删除generated
属性。
DEMO(1.11.1):http://jsfiddle.net/8gQ7U/