我正在尝试使用 jQuery,以便根据单击的单选按钮显示不同的部分或表单。我首先使用 JSFiddle 让它在一个普通的 vanilla 表单上工作,一切看起来都很好,但是当我将相同的代码逻辑应用于使用 simple_form gem 的 rails 应用程序时,似乎没有任何工作。
请参阅下面的代码
$("input[type=radio]").click(function(){
if ($('input[name=usertype]:checked').val() == "User A") {
$("#one").slideDown("fast");
$("#two").slideUp("fast");
$("#three").slideUp("fast");
$("#four").slideUp("fast");
}
if ($('input[name=usertype]:checked').val() == "User B") {
$("#two").slideDown("fast");
$("#one").slideUp("fast");
$("#three").slideUp("fast");
$("#four").slideUp("fast");
}
if ($('input[name=usertype]:checked').val() == "User B") {
$("#three").slideDown("fast");
$("#two").slideUp("fast");
$("#one").slideUp("fast");
$("#four").slideUp("fast");
}
if ($('input[name=usertype]:checked').val() == "User B") {
$("#four").slideDown("fast");
$("#three").slideUp("fast");
$("#two").slideUp("fast");
$("#one").slideUp("fast");
}
});
<%= simple_form_for(resource, :as => resource_name, :html => { :class => 'form-horizontal' }, :url => registration_path(resource_name)) do |f| %>
<%= f.input :email, placeholder: 'example@domain.com' %>
<%= f.input :username %>
<%= f.input :usertype, label: 'Which best describes you', :input_html => {:name => "usertype"}, :collection => ["User A", "User B", "User C", "User D"],
as: :radio_buttons %>
<ul id="one">
<li><%= f.input :dob, label: 'Date of Birth', as: :date, start_year: Date.today.year - 90,
end_year: Date.today.year - 16,
order: [:day, :month, :year] %></li>
</ul>
<ul id="two">
<li><%= f.input :launchedIn, label: 'Year club launched', as: :date, start_year: Date.today.year - 300,
end_year: Date.today.year, discard_day: true, discard_month: true, order: [:year] %></li>
</ul>
<ul id="three">
<li><%= f.input :category, :collection => ["Football", "Golf", "Tennis", "Rugby"], prompt: 'Choose an Sport' %>
</ul></li>
<ul id="four">
<li><%= f.input :bio, label: 'Tell us about you', hint: 'Maximum 300 characters' %></li>
</ul>
<%= f.input :password %>
<%= f.input :password_confirmation %>
<div><%= f.submit "Register", :class => 'btn btn-primary' %></div>
<% end %>
至少有四个版本的 JSFiddle 可以工作,但是没有一个可以在我的 rails 应用程序上工作。
非常感谢您的帮助,因为我的压力球只能承受这么多:-)
非常感谢
基兰