点击启用禁用的单选按钮rails应用程序

时间:2015-12-11 08:44:04

标签: javascript jquery ruby-on-rails

我的rails应用程序中有两个单选按钮,如下所示。

<td>
  <input checked="checked" onclick="make_disabled('<%=uniqid%>')"  type="radio" value='cash' name="expense[<%=uniqid%>][cash]" id="expense_cash<%=uniqid%>" >
</td>

<td>
  <input  onclick="make_enable('<%=uniqid%>')" type="radio" value='cheque' name="expense[<%=uniqid%>][cheque]" id="expense_cheque<%=uniqid%>" >
</td>

以下三个输入字段:

<td>
  <input type="number" disabled='disabled' name="expense[<%=uniqid%>][bank_name]" id="expense_bank_name<%=uniqid%>" >
</td>

<td>
  <input type="text" disabled='disabled'  name="expense[<%=uniqid%>][comments]" id="expense_comments<%=uniqid%>" >
</td>

<td>
  <input type="text" disabled='disabled' name="expense[<%=uniqid%>][cheque_no]" id="expense_cheque_no<%=uniqid%%>" >
</td>

我默认选中radio button 现金。现在点击单选按钮检查我想启用默认的已禁用input fields

这是我试图解决的JS脚本,但它无法正常工作。

  function make_disabled(uniqid)
    {
     $("#collection_cheque_no"+uniqid).val('');
     $("#collection_cheque_no"+uniqid).attr('disabled','disabled');           
     $("#collection_bank_name"+uniqid).val('');
     $("#collection_bank_name"+uniqid).attr('disabled','disabled');
     $("#collection_comments"+uniqid).val(''); 
     $("#collection_comments"+uniqid).attr('disabled','disabled');
    }

   function make_enable(uniqid)
    {
     $("#collection_chq_no"+uniqid).removeAttr('disabled');
     $("#collection_bank_name"+uniqid).removeAttr('disabled');
     $("#collection_comments"+uniqid).removeAttr('disabled');
    }

请帮忙。

1 个答案:

答案 0 :(得分:1)

您必须使用相同的名称对收音机进行分组:

name="expense[<%=uniqid%>]"

如果您真的需要那些可以使用data-*属性提供的额外括号:

<input checked="checked" onclick="make_disabled('<%=uniqid%>')"  type="radio" value='cash' name="expense[<%=uniqid%>]" data-name="[cash]" id="expense_cash<%=uniqid%>" >
<input  onclick="make_enable('<%=uniqid%>')" type="radio" value='cheque' name="expense[<%=uniqid%>]" data-name="[cheque]" id="expense_cheque<%=uniqid%>" >