রেল আকারে রেডিও বোতামগুলির জন্য লেবেলগুলি


147

আমার প্রশ্ন অনুরূপ এই এক কিন্তু একটি পাগল অ্যাপের জন্য।

কিছু রেডিও বোতামের সাথে আমার একটি ফর্ম রয়েছে এবং আমি তাদের সাথে লেবেলগুলি যুক্ত করতে চাই। 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>

উত্তর:


145
<% form_for(@message) do |f| %>
  <%= f.radio_button :contactmethod, 'email', :checked => true %> 
  <%= label :contactmethod_email, 'Email' %>
  <%= f.radio_button :contactmethod, 'sms' %>
  <%= label :contactmethod_sms, 'SMS' %>
<% end %>

91
এছাড়াও অন্য একটি উপায় আছে: একই জিনিসটি :valueকরার জন্য একটি বিকল্প পাস করা f.label। যেমন <%= f.label :contactmethod, 'SMS', :value => 'sms' %>। এটি লেবেলের ট্যাগের "জন্য" বৈশিষ্ট্যটি সঠিকভাবে সেট করে, যা লেবেলে ক্লিক করে উপযুক্ত রেডিও বোতামটি নির্বাচন করে। উপরের উত্তরে, কেবল labelসহায়িকা ব্যবহারকারীর দ্বারা ফর্মবিল্ডারের সাথে রেডিও বোতামটি তৈরি করা হলে "জন্য" বৈশিষ্ট্যটি ভুল হতে হবে
জন

2
আমি কেবল এটিই বলতে চেয়েছিলাম যে কারাগারে একজন নতুন আগত হিসাবে, আমি এই উত্তরটি আমার কাছে ফিরে আসার উত্তরটি পেয়েছি। এটি উপহার দেওয়া অবিরত। ঠিক আছে, যতক্ষণ না আমি যথাযথ বাক্যবিন্যাস মনে রাখি না ... :)
জন গ্যালাগার

আপনি যদি checkedশর্তসাপেক্ষে স্ট্যাকওভারফ্লো.com
ফিলিপ সাবিনো

8
ভবিষ্যতের পাঠকদের জন্য জন ডাউথের এই প্রশ্নের সঠিক উত্তর রয়েছে। এই উত্তরটি এখন আর সঠিক নয়।
সুপারলুমিনারি

230

লেবেল ট্যাগের বৈশিষ্ট্যটি সংশ্লিষ্ট আইডির মতোই হবে তা নিশ্চিত :valueকরার জন্য বিকল্পটি পাস করাf.labelforradio_button

<% form_for(@message) do |f| %>
  <%= f.radio_button :contactmethod, 'email' %> 
  <%= f.label :contactmethod, 'Email', :value => 'email' %>
  <%= f.radio_button :contactmethod, 'sms' %>
  <%= f.label :contactmethod, 'SMS', :value => 'sms' %>
<% end %>

দেখুন ActionView :: সাহায্যকারী :: FormHelper # ট্যাগ

the: মান বিকল্প, যা রেডিও_বাটন ট্যাগগুলির জন্য লেবেলগুলিকে লক্ষ্য করে নকশাকৃত


5
ঠিক আছে, এটিতে ০ টি ভোট থাকতে পারে কারণ কয়েক মাস পরে উত্তর দেওয়া হয়েছিল, তবে আসলে এটি ভাল the ক্যাভেট: আপনার
কড়া>> ২.৩.৩

3
এই পদ্ধতিটি field_with_errorsযখন প্রয়োজন হয় তখন ডিভটিও সরবরাহ করে ( :contactmethod_emailপদ্ধতিটি ব্যবহার করার সময় এটি প্রদর্শিত হবে না )। এটা সঠিক উত্তর!
সিজারসোল

1

যদি আপনি কোনও আইডির উপসর্গযুক্ত অবজেক্ট_নাম চান তবে আপনাকে ফর্ম অবজেক্টে ফর্ম সহায়কদের কল করতে হবে:

- form_for(@message) do |f|
  = f.label :email

এটি নিশ্চিত করে যে কোনও জমা দেওয়া ডেটা মেমরির মধ্যে কোনও বৈধতা ত্রুটি হওয়া উচিত ইত্যাদি থাকা উচিত etc.

আপনি যদি ফর্ম অবজেক্টে ফর্ম সহায়ক পদ্ধতিকে কল করতে না পারেন, উদাহরণস্বরূপ যদি আপনি ট্যাগ হেল্পার (রেডিও_বাটন_ট্যাগ ইত্যাদি) ব্যবহার করেন তবে আপনি নামটি ফাঁক করে ব্যবহার করতে পারেন:

= radio_button_tag "#{f.object_name}[email]", @message.email

এক্ষেত্রে আপনার কোনও জমা জমা রাখার জন্য আপনাকে মানটি নিজেই নির্দিষ্ট করতে হবে need


0

ব্যবহার true/ falseযেমন মানটি ক্ষেত্রের প্রাক ভরা যদি মডেল ফর্ম প্রেরণ এই বৈশিষ্ট্য ইতিমধ্যে পূরণ করেনি হবে:

= f.radio_button(:public?, true)
= f.label(:public?, "yes", value: true)
= f.radio_button(:public?, false)
= f.label(:public?, "no", value: false)

0

এটি radioবোতাম এবং এর labelগুলি ব্যবহার করে রেটিংয়ের জন্য আমার প্রকল্পের একটি উদাহরণ

<div class="rating">
  <%= form.radio_button :star, '1' %>
  <%= form.label :star, '☆', value: '1' %>

  <%= form.radio_button :star, '2' %>
  <%= form.label :star, '☆', value: '2' %>

  <%= form.radio_button :star, '3' %>
  <%= form.label :star, '☆', value: '3' %>

  <%= form.radio_button :star, '4' %>
  <%= form.label :star, '☆', value: '4' %>

  <%= form.radio_button :star, '5' %>
  <%= form.label :star, '☆', value: '5' %>
</div>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.