我的代码:
<label class="btn btn-default">
<s:checkbox name="viewTypeDescr" /> 
<s:text name="name.contentType" />
</label>
文档:http ://struts.apache.org/release/2.3.x/docs/checkbox.html
说它会呈现一个input[type=checkbox]
相反,这就是我得到的:
<label class="btn btn-default">
<input type="checkbox" name="viewTypeDescr" value="true" id="search_viewTypeDescr">
<input type="hidden" id="__checkbox_search_viewTypeDescr" name="__checkbox_viewTypeDescr" value="true">
Content Type
</label>
添加input[type="hidden"]
的内容使结果页面无效,因为标签内部最多可以有 1 个输入。
无效的定义:
- 转到验证器.w3.org
- 将提供的 HTML 代码粘贴到“直接输入验证”中
- 用缺失装饰它
<html><head><title>foo</title></head><body>
并</body></html>
减少错误错误 - 选择 HTML5 广告文档类型
- 点击“验证”
- 收到此错误:“行 xyz,列 abc:标签元素可能最多包含一个输入、按钮、选择、文本区域或 keygen 后代。”
- 转到规范以防万一:“标题可以与特定的表单控件相关联,称为标签元素的标签控件,可以使用 for 属性,也可以将表单控件放在标签元素本身中。”
- 发现“如果未指定 for 属性,但 label 元素具有可标记元素后代,则按树顺序排列的第一个此类后代是 label 元素的带标签控件。”
- 添加隐藏的不能存在“ http://www.w3.org/html/wg/drafts/html/master/forms.html#category-label ”
无论如何,当您将文档提交给 QA 进行验证时,他们会使用 validator.w3.org,这才是最重要的。
隐藏的原因是什么?我怎样才能摆脱它或将它移到别处?