我们有以下代码,其中我们在 w3c 验证器中收到错误“具有 for 属性的标签元素的任何输入后代必须具有与 for 属性匹配的 ID 值。”和“标签元素最多可以包含一个输入、按钮、选择、文本区域或注册机后代。”这是验证器应该忽略的东西(因为它看起来是正确的)还是应该更改它以安抚 w3c?请注意,这是 html5 文档类型。
<fieldset>
<label for="user_is_subscribed">
<input type="hidden" value="0" name="user[is_subscribed]">
<input type="checkbox" value="1" name="user[is_subscribed]" id="user_is_subscribed">
Newsletter Signup
</label>
<span class="checkLabel">We will never spam or give away your information</span>
</fieldset>
提前致谢!
最佳答案
标签最多应包含一个输入元素。将隐藏的输入移出标签。此外,当输入是标签的后代时,for
属性是多余的。
<fieldset>
<input type="hidden" value="0" name="user[is_subscribed]">
<label>
<input type="checkbox" value="1" name="user[is_subscribed]" id="user_is_subscribed">
Newsletter Signup
</label>
<span class="checkLabel">We will never spam or give away your information</span>
</fieldset>
关于forms - 我真的必须从标签中删除第二个隐藏的表单字段才能验证我的 HTML 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760546/