javascript - 如何启用按钮检查单选按钮

标签 javascript jquery ruby-on-rails ruby ruby-on-rails-4

我有一个包含 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);

  });

我哪里错了?

最佳答案

您的单选按钮选择器不正确 - 您只将它附加到已经在加载时检查过的单选按钮,我假设没有。删除 :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);
});

关于javascript - 如何启用按钮检查单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37191450/

相关文章:

javascript - 同步 Ajax 调用和executeQueryAsync Sh​​arePoint JS CSOM

javascript - 如何使用文件属性序列化对象

javascript - jquery密码验证

jQuery Datatables 旧版加载动画

ruby-on-rails - 访问使用 attr_accessor 创建的变量

ruby-on-rails - Rails 菜单链接样式取决于当前页面

javascript - 如何使用 superagent 发送 FormData 对象

javascript - 无法从 Promise 函数接收正确的数据

jquery - 通过 jQuery 捕获打印事件

ruby-on-rails - 如何在 Gemfile 中安装生产组