按名称启用/禁用Jquery复选框

时间:2016-08-31 21:43:32

标签: jquery checkbox

我试图在下表中按名称禁用复选框,但它无效。有什么建议,为什么?

<table border="1" class="myTable grid">
  <tr align="center">
    <td>A</td>
  </tr>
  <tr align="center">
    <td>1</td>
    <td>
      <input type="checkbox" name="cb1;1" value="1">
    </td>
  </tr>
  <td>2</td>
  <td>
    <input type="checkbox" name="cb2;1" value="1" checked>
  </td>
  </tr>
  <tr align="center">
</table>
<button id="button1" type="button"> DISABLE </button>
<button id="button2" type="button">ENABLE </button>

这是禁用/启用这些复选框的方法。我试过.attr('禁用','禁用');也是禁用。

$("#button1").click(function() { 
  var cbname = $j(this).attr("name");
  $("input[name='cbname']").prop("disabled", false);
});

$("#button2").click(function() { 
  var cbname = $j(this).attr("name");
  $("input[name='cbname']").prop("disabled", true);
});

2 个答案:

答案 0 :(得分:1)

一些事情:

  1. 您尚未为按钮指定"name"属性,因此找不到相关的复选框。

  2. 您没有在复选框选择器中转发cbname变量。

  3. 所有这一切应该是这样的:

    <强> HTML:

        <table border="1" class="myTable grid">
          <tr align="center">
            <td>A</td>
          </tr>
          <tr align="center">
            <td>1</td>
            <td>
              <input type="checkbox" name="cb1;1" value="1">
            </td>
          </tr>
          <tr>
            <td>2</td>
            <td>
              <input type="checkbox" name="cb2;1" value="1" checked>
            </td>
          </tr>
          <tr align="center">
        </table>
        <button id="disable" type="button" name="cb1;1"> DISABLE </button>
        <button id="enable" type="button" name="cb1;1">ENABLE </button>
    

    <强>使用Javascript:

       $("#disable").click(function() { 
          var cbname = $(this).attr("name");
          $('input[name="'+cbname+'"]').prop("disabled", true);
        });
    
        $("#enable").click(function() { 
          var cbname = $(this).attr("name");
          $('input[name="'+cbname+'"]').prop("disabled", false);
        }); 
    

    JSFiddle:https://jsfiddle.net/x324436z/

    P.S。:我冒昧地命名你的启用和禁用按钮ID。

答案 1 :(得分:0)

Rour复选框名称为cb1;1cb2;1,但您尝试选择cbname,请尝试将其更改为:

$("input[name='cb1;1']").prop("disabled", false);