2013-08-21 2 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. Вставить прилагаемую HTML код «Подтвердить путем прямого ввода»
  3. декора его с отсутствующими <html><head><title>foo</title></head><body> и </body></html>, чтобы уменьшить ложные ошибки
  4. Выбор HTML5 объявление DOCTYPE
  5. Нажмите кнопку «Подтвердить»
  6. Получить эту ошибку: «L ine xyz, Column abc: элемент label может содержать не более одного ввода, кнопки, select, textarea или потокового потомка. "
  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 связан только с одним элементом управления формой.' 'Associated' не' может иметь'. –

+0

Обновлено с "validation" info – Trumbitta

ответ

0

Я создал новую тему, с parent = simple, и будет использовать это.

По-прежнему не знаю, какова предполагаемая цель этого скрытого ...

+1

Цель: http://struts.apache.org/development/2.x/docs/checkbox-interceptor.html. –

+2

Цель ясно: отправить значение для отмеченного флажка. Это общая картина. –

+0

Согласовано. Но он должен быть факультативным и входить. – Trumbitta

Смежные вопросы