Ma question est similaire à celle-ci mais pour une application Rails.
J'ai un formulaire avec des boutons radio et j'aimerais y associer des étiquettes. L' label
assistant de formulaire prend uniquement un champ de formulaire en tant que paramètre, mais dans ce cas, j'ai plusieurs boutons radio pour un seul champ de formulaire. La seule façon que je vois pour le faire est de créer manuellement une étiquette, en codant en dur l'ID qui est généré automatiquement pour le bouton radio. Quelqu'un connaît-il une meilleure façon de le faire?
Par exemple:
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
Cela génère quelque chose comme:
<label for="message_contactmethod">Contactmethod</label>
<input checked="checked" id="message_contactmethod_email" name="message[contactmethod]" value="email" type="radio"> Email
<input id="message_contactmethod_sms" name="message[contactmethod]" value="sms" type="radio"> SMS
Ce que je veux:
<input checked="checked" id="message_contactmethod_email" name="message[contactmethod]" value="email" type="radio"><label for="message_contactmethod_email">Email</label>
<input id="message_contactmethod_sms" name="message[contactmethod]" value="sms" type="radio"> <label for="message_contactmethod_sms">SMS</label>
:value
option àf.label
fera la même chose. par exemple<%= f.label :contactmethod, 'SMS', :value => 'sms' %>
. Cela définit correctement l'attribut "pour" de la balise d'étiquette, ce qui fait que cliquer sur l'étiquette sélectionne le bouton radio approprié. Dans la réponse ci-dessus, le simple fait d'utiliser l'label
assistant rendra l'attribut «for» incorrect lorsque le bouton radio est créé avec FormBuilder