如何在HTML 5中添加自定义属性以获得有效标记?

时间:2014-03-18 04:07:05

标签: html5 jquery-validate w3c-validation

我正在使用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验证错误?非常感谢您的帮助。

1 个答案:

答案 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/