2013-08-21 35 views
2

我的代碼:Struts2的S:複選框 - 不需要輸入型隱藏

<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. 轉到validator.w3.org來
  2. 「通過直接輸入驗證」
  3. 裝飾它提供的HTML代碼粘貼缺少<html><head><title>foo</title></head><body></body></html>以減少假錯誤
  4. 選擇HTML5廣告DOCTYPE
  5. 點擊 「驗證」
  6. 得到這個錯誤:「L ine xyz,Column abc:標籤元素最多可以包含一個輸入,按鈕,select,textarea或keygen後代。「
  7. 爲了以防萬一:「標題可以與特定的表單控件(稱爲標籤元素的標籤控件)相關聯,可以使用for屬性,也可以將表單控件放入標籤元素本身。」
  8. 發現:「如果未指定for屬性,但標籤元素具有可標記的元素後代,則第一個樹狀順序的後代是標籤元素的標籤控件。」
  9. 添加一個隱藏的不能有「http://www.w3.org/html/wg/drafts/html/master/forms.html#category-label

無論如何,當您提交文件QA進行驗證,他們使用validator.w3.org,這是最重要的。

隱藏的原因是什麼?我怎麼能擺脫它或將它移動到其他地方?

+0

你確定有一個隱藏的領域? –

+0

你如何檢查你的HTML的有效性?你在哪裏發現該標籤只能有一個輸入? '每個LABEL元素只與一個表單控件相關聯.''相關'不是''可以''。 –

+0

更新爲「驗證」信息 – Trumbitta

回答

0

我創建了一個新的主題,parent = simple,並將使用它。

還是不知道這個隱藏的目的是什麼...

+1

目的:http://struts.apache.org/development/2.x/docs/checkbox-interceptor.html。 –

+2

目的很明確:爲未選中的複選框提交一個值。這是一種常見的模式。 –

+0

同意。但它應該是可選的,並選擇加入。 – Trumbitta