[英]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.