如果选择单选按钮,则显示表单

时间:2016-05-11 02:37:15

标签: javascript jquery ruby-on-rails

如何根据我检查的单选按钮显示表单内容?目前我有这样的事情:

$('input[type="radio"]').change(function() {
   var selected = $('input:checked[type="radio"]').val();
    if(selected == 'true') {
      $('.fee').show();
     } else if(selected == 'false') {
        $('.fee').hide();
    }
 });

var prev = $(".subscription_button:checked");

$(".subscription_button").change(function() {
    if(confirm('really?'))
         { 
           prev = $(this); 
         }
     else{
            prev.prop('checked','checked');   
        }    
});

的观点:

<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
 <table>
  <tr>
    <td>
     Seller Fee?
    </td>
    <td>
    <%= radio_button("seller", "need_fee", "true", class: "subscription_button") %>
    <%= radio_button("seller", "need_fee", "false") %>
    </td>
  </tr>
  <tr class="fee" style="display:none;">
    <td>Set fee</td>
    <td><%= f.number_field :fee  %></td>
  </tr>
</table>
<%= f.submit "Save" %>
<% end %>

当我将单选按钮从false更改为true时,它实际上正在工作,但我想要的是当选中默认按钮为true时,正在显示“费用”类,如果通过默认选中false按钮,类“费用”将不显示。感谢。

4 个答案:

答案 0 :(得分:1)

您需要的只是在DOM上的change按钮上触发checked事件,如下所示:

$('input[type="radio"]').change(function() {
   //your working code
})
.filter(':checked').change(); //<<<<--- ADD THIS

答案 1 :(得分:1)

尝试更改此行:

<tr class="fee" style="display:none;">

对此:

<tr class="fee" style="<%= 'display:none' unless f.object.need_fee %>">

希望这有帮助。 :)

答案 2 :(得分:0)

添加加载(或就绪)事件:

  $('input[type="radio"]').load(function() {
    var selected = $('input:checked[type="radio"]').val();
     if(selected == 'true') {
       $('.fee').show();
      } else if(selected == 'false') {
         $('.fee').hide();
      }
  });

答案 3 :(得分:0)

为此创建一个函数:

var selected = $('input:checked[type="radio"]').val();
if(selected == 'true') {
  $('.fee').show();
 } else if(selected == 'false') {
    $('.fee').hide();
}

然后在DOM加载和单选按钮更改时调用它。