我有一个包含3个单选按钮的foreach,如何在选中单选按钮时启用特定按钮?我有这个:
// Starts by disabling all the buttons
$('.btn-portabilizar').attr('disabled', true);
// If it is checked, enable the a specific button
$('input[name="autorizacao"]:checked').click(function(){
$('.btn-portabilizar').removeAttr('disabled');
});
我的观点是:
<% @autorizacoes.each do |autorizacao| %>
<tr>
<td><%= radio_button_tag 'autorizacao', autorizacao.numero_contrato %></td>
<td><%= autorizacao.numero_contrato %></td>
<input class="string required" type="text" name="portabilidade_nova_parcela" id="portabilidade_nova_parcela">
</td>
<td>
<%= link_to "Portabilizar", "#", :class => 'btn btn-primary btn-portabilizar' %>
</td>
</tr>
<% end %>
对不起葡萄牙语代码...
更新========================================== /强>
当选中启用按钮时,如果取消选中禁用按钮,我会这样做但不起作用:
$('input[name="autorizacao"]').click(function(){
if (this.checked) {
$(this).closest('tr').find('.btn-portabilizar').prop('disabled', false);
}
else
$(this).closest('tr').find('.btn-portabilizar').prop('disabled', true);
});
我错了什么?
答案 0 :(得分:2)
您的单选按钮选择器不正确 - 您只将它附加到已经加载检查的单选按钮上,我假设没有。删除:checked
部分:
$('input[name="autorizacao"]').click(function(){
$('.btn-portabilizar').prop('disabled', false);
});
另请注意,在可能的情况下使用prop()
是一种更好的做法。
要仅影响同一行中的按钮,您需要使用jQuery的DOM遍历方法,如下所示:
$('input[name="autorizacao"]').click(function(){
$(this).closest('tr').find('.btn-portabilizar').prop('disabled', false);
});