คำถามของฉันคล้ายกับคำถามนี้ แต่สำหรับแอพ Rails
ฉันมีแบบฟอร์มที่มีปุ่มตัวเลือกและต้องการเชื่อมโยงป้ายกำกับกับพวกเขา ตัวlabel
ช่วยสร้างฟอร์มใช้เขตข้อมูลฟอร์มเป็นพารามิเตอร์เท่านั้น แต่ในกรณีนี้ฉันมีปุ่มตัวเลือกหลายปุ่มสำหรับเขตข้อมูลฟอร์มเดียว วิธีเดียวที่ฉันเห็นคือการสร้างป้ายกำกับด้วยตนเองเข้ารหัสรหัสที่สร้างขึ้นโดยอัตโนมัติสำหรับปุ่มตัวเลือก ไม่มีใครรู้วิธีที่ดีกว่าที่จะทำหรือไม่
ตัวอย่างเช่น:
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
สิ่งนี้สร้างสิ่งที่ชอบ:
<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
สิ่งที่ฉันต้องการ:
<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
ตัวเลือกที่f.label
จะทำสิ่งเดียวกัน<%= f.label :contactmethod, 'SMS', :value => 'sms' %>
เช่น การตั้งค่านี้ "สำหรับ" คุณลักษณะของแท็กฉลากอย่างถูกต้องซึ่งทำให้การคลิกที่ฉลากเลือกปุ่มตัวเลือกที่เหมาะสม ในคำตอบข้างต้นการใช้ตัวlabel
ช่วยจะทำให้แอตทริบิวต์ "สำหรับ" ไม่ถูกต้องเมื่อสร้างปุ่มตัวเลือกด้วย FormBuilder