如何根据我检查的单选按钮显示表单内容?目前我有这样的事情:
$('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按钮,类“费用”将不显示。感谢。
答案 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加载和单选按钮更改时调用它。