Pertanyaan saya mirip dengan yang satu ini tetapi untuk aplikasi Rails.
Saya memiliki formulir dengan beberapa tombol radio, dan ingin menghubungkan label dengan mereka. The label
bentuk helper hanya membutuhkan formulir isian sebagai parameter, tetapi dalam hal ini saya memiliki beberapa tombol radio untuk bidang bentuk tunggal. Satu-satunya cara yang saya lihat untuk melakukannya adalah secara manual membuat label, mengkodekan keras ID yang dihasilkan secara otomatis untuk tombol radio. Adakah yang tahu cara yang lebih baik untuk melakukannya?
Sebagai contoh:
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
Ini menghasilkan sesuatu seperti:
<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
Apa yang saya inginkan:
<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
opsi untukf.label
akan melakukan hal yang sama. mis<%= f.label :contactmethod, 'SMS', :value => 'sms' %>
. Ini mengatur atribut "untuk" dari label label dengan benar, yang membuat mengklik label memilih tombol radio yang sesuai. Dalam jawaban di atas, hanya menggunakanlabel
helper akan menyebabkan atribut "for" salah ketika tombol radio dibuat dengan FormBuilder