Moje pytanie jest podobne do tego, ale dotyczy aplikacji Rails.
Mam formularz z kilkoma przyciskami opcji i chciałbym skojarzyć z nimi etykiety. label
Postać pomocnika zajmuje tylko pole formularza jako parametr, ale w tym przypadku mam kilka przycisków opcji dla pojedynczego pola formularza. Jedynym sposobem, w jaki mogę to zrobić, jest ręczne utworzenie etykiety i zakodowanie identyfikatora, który jest generowany automatycznie dla przycisku opcji. Czy ktoś zna lepszy sposób na zrobienie tego?
Na przykład:
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
To generuje coś takiego:
<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
Czego chcę:
<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
opcjif.label
spowoduje to samo. np<%= f.label :contactmethod, 'SMS', :value => 'sms' %>
. Spowoduje to prawidłowe ustawienie atrybutu „for” znacznika etykiety, co powoduje, że kliknięcie etykiety powoduje wybranie odpowiedniego przycisku opcji. W powyższej odpowiedzi użycielabel
pomocnika spowoduje, że atrybut „for” będzie niepoprawny, gdy przycisk opcji zostanie utworzony za pomocą programu FormBuilder