在 simple_form 中放置两个单选按钮的最佳方法是什么,其中一个按钮默认禁用,另一个按钮被选中!
f.input_field :listing_type, as: :radio_buttons, collection: [ "lease", "sale"], :item_wrapper_class => 'inline'
这给了我两个启用和选择的按钮。我希望默认禁用销售并选择租赁。
在 simple_form 中放置两个单选按钮的最佳方法是什么,其中一个按钮默认禁用,另一个按钮被选中!
f.input_field :listing_type, as: :radio_buttons, collection: [ "lease", "sale"], :item_wrapper_class => 'inline'
这给了我两个启用和选择的按钮。我希望默认禁用销售并选择租赁。
然后,您必须使用相同的名称分别制作它们,以便可以禁用其中一个。
<%= f.input :listing_type, as: :radio_buttons, :disabled: true, input_html: { value: 'lease' } %>
<%= f.input :listing_type, as: :radio_buttons, input_html: { value: 'sale' } %>
这是一个更新的答案。你可以:
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' %>
试试这个
f.input_field :listing_type, as: :radio_buttons, collection: [ "lease", "sale"], :item_wrapper_class => 'inline', :checked => "lease"
您可以使用 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);
据我所知,单选按钮的行为与选择选项相同。如果您将数组传递给由显示文本、输入值和任何其他 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,第一个没有。
看到你可以使用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
您可以将选项设置为默认值,如图所示。