Обертывание <% = f.check_box %> в <маркировке>

У меня есть список флажков на форме. Из-за пути CSS структурирован, элемент маркировки разрабатывается непосредственно. Это требует, чтобы я вложил флажок в теге.

Это работает в необработанном HTML при нажатии на текст метки, состояние изменений флажка. Это не работает с направляющими <%= f.check_box %> помощник, однако, потому что это производит скрытый входной тег сначала.

Таким образом,

<label>
   <%= f.check_box :foo %>
   Foo
</label>

это - вывод, который я хочу:

<label>
    <input type="checkbox" ... /> 
    <input type="hidden" ... />
    Foo
</label>

... но это - то, какие направляющие дает мне:

<label>
    <input type="hidden" ... />
    <input type="checkbox" ... />
    Foo
</label>

Таким образом, поведение маркировки на самом деле не работает :(.

Там какой-либо путь состоит в том, чтобы обойти это?

14
задан Ben Scheirman 18 May 2010 в 21:00
поделиться

2 ответа

Rails генерирует скрытый ввод перед флажком, потому что ему нужен способ узнать, была ли форма отправлена ​​с отключенным флажком. Порядок чувствителен к , поскольку флажок отменяет скрытый ввод, если он был отмечен. Подробнее см. Rails API .

Вы должны использовать вместо того, чтобы заключать флажок в теге label.

7
ответ дан 1 December 2019 в 06:59
поделиться

Это не способ использования тега label . Вместо этого используйте его так:

<input type="hidden" ... /> <!-- doesn't really matter where these are -->

<label for="id_of_element">Foo</label>
<input type="checkbox" id="id_of_element" ... />

Теперь «Foo» действует как метка для элемента флажка, и вы можете щелкнуть «Foo», чтобы установить или снять отметку.

-3
ответ дан 1 December 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: