3

我的代码:

<label class="btn btn-default">
    <s:checkbox name="viewTypeDescr" />&#32;
    <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 个输入。

无效的定义:

  1. 转到验证器.w3.org
  2. 将提供的 HTML 代码粘贴到“直接输入验证”中
  3. 用缺失装饰它<html><head><title>foo</title></head><body></body></html>减少错误错误
  4. 选择 HTML5 广告文档类型
  5. 点击“验证”
  6. 收到此错误:“行 xyz,列 abc:标签元素可能最多包含一个输入、按钮、选择、文本区域或 keygen 后代。”
  7. 转到规范以防万一:“标题可以与特定的表单控件相关联,称为标签元素的标签控件,可以使用 for 属性,也可以将表单控件放在标签元素本身中。”
  8. 发现“如果未指定 for 属性,但 label 元素具有可标记元素后代,则按树顺序排列的第一个此类后代是 label 元素的带标签控件。”
  9. 添加隐藏的不能存在“ http://www.w3.org/html/wg/drafts/html/master/forms.html#category-label

无论如何,当您将文档提交给 QA 进行验证时,他们会使用 validator.w3.org,这才是最重要的。

隐藏的原因是什么?我怎样才能摆脱它或将它移到别处?

4

1 回答 1

0

我创建了一个新主题,parent=simple,并将使用它。

还是不知道隐藏的目的是什么……

于 2013-08-21T10:01:20.203 回答