繁体   English   中英

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

[英]Show form if radio button is selected

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

$('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按钮,将显示类“ fee” ;如果默认情况下,选中false按钮,则类“费用”将不显示任何内容。 谢谢。

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

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

尝试更改此行:

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

对此:

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

希望能有所帮助。 :)

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

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

为此创建一个函数:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM