1

在 simple_form 中放置两个单选按钮的最佳方法是什么,其中一个按钮默认禁用,另一个按钮被选中!

f.input_field :listing_type, as: :radio_buttons, collection: [ "lease", "sale"], :item_wrapper_class => 'inline'

这给了我两个启用和选择的按钮。我希望默认禁用销售并选择租赁。

4

6 回答 6

4

然后,您必须使用相同的名称分别制作它们,以便可以禁用其中一个。

<%= f.input :listing_type,     as: :radio_buttons, :disabled: true, input_html: { value: 'lease' } %>
<%= f.input :listing_type,     as: :radio_buttons, input_html: { value: 'sale' } %>
于 2013-08-26T12:20:44.070 回答
4

这是一个更新的答案。你可以:

  • 通过向集合添加哈希来指定禁用哪个单选按钮:collection: [['op1', 'val1', disabled: false], ['op2', 'val2', disabled: true]]
  • 通过添加选中到其集合哈希或添加checked: value_to_be_checked到主选项哈希来指定选中哪个单选按钮。这是两个选项的示例:

示例1:

<%= f.input_field :listing_type, as: :radio_buttons, collection: [ ['lease', 'lease', disabled: false], ['sale', 'sale', disabled: true]], checked: 'lease', :item_wrapper_class => 'inline' %>

示例2:

<%= f.input_field :listing_type, as: :radio_buttons, collection: [ ['lease', 'lease', disabled: false, checked: true], ['sale', 'sale', disabled: true]], :item_wrapper_class => 'inline' %>
于 2018-11-27T20:29:54.447 回答
0

试试这个

f.input_field :listing_type, as: :radio_buttons, collection: [ "lease", "sale"], :item_wrapper_class => 'inline', :checked => "lease"
于 2013-08-26T12:09:58.933 回答
0

您可以使用 jquery坚持分离单选按钮来破解 radio_button 禁用的功能。

f.input_field :listing_type, as: :radio_buttons, collection: [ "lease", "sale"], :item_wrapper_class => 'inline', :checked=> "lease", :disabled=> true

/app/assets/application.js

$(':radio:not(:checked)').attr('disabled', true);
于 2014-06-10T12:40:46.427 回答
0

据我所知,单选按钮的行为与选择选项相同。如果您将数组传递给由显示文本、输入值和任何其他 HTML 属性组成input的选项 - 按此顺序- 您可以在单选按钮中嵌入任何您想要的内容(或任何输入) .collection

前任:

radio_button_options = LeaseCalculator::TERMS.map do |term|
  ["#{term} Months",term, {disabled: (term > maximum_term_length)}]
end

= form.input :term,
    as: :radio,
    collection: radio_button_options

在这里,我对 HTML5 disabled 属性设置了条件。它在生成的 HTML 中完美运行。

<input id="lease_calculator_term_48" data-calculator-input="term" class="update_calculator" type="radio" value="48" name="lease_calculator[term]">
<input id="lease_calculator_term_60" data-calculator-input="term" class="update_calculator" disabled="disabled" type="radio" value="60" checked="checked" name="lease_calculator[term]">

注意:第二个输入禁用了 HTML5,第一个没有。

于 2017-06-16T20:29:07.760 回答
-1

看到你可以使用form帮助器来制作你的表单并像这样设置默认值

 <% form_tag desired_path do %>
 <%= radio_button_tag(:options, "res_a", true) %>
 <%= label_tag "res a" %>
 <%= radio_button_tag(:options, "res_b") %>
 <%= label_tag "res_b" %>
 <%= submit_tag :value => "submit"%>
 <% end %>

通过提供true您可以将选项设置为默认值,如图所示。

于 2013-08-26T12:01:51.027 回答