jQuery复选框禁用并添加类

时间:2017-12-05 20:38:20

标签: javascript jquery ajax checkbox

我有一个包含行列表的表,每行都有两个复选框 我想要做的是当有人检查复选框时,它使用ajax向服务器发送请求,如果通过则将reponsev与数据一起发送,如果失败则将tr颜色更改为绿色,则将其更改为红色。我完成了此步骤

现在我想要它成功时它应该启用同一个tr上的其他复选框,所以现在用户可以通过第二步处理。



$("#SendReview").click(function() {

  var selected = "";
  $('.ReviewForm').each(function() {
    selected = selected + "," + $(this).attr('id');
  });

  $.ajax({
    url: '@Url.Action("VerifyFormRquest", "Results")',
    type: "POST",
    data: {
      scanid: selected
    },
    success: function(data, textStatus, jqXHR) {
      alert(data.success);

      data.success.split(',').forEach(function(c) {
        if (c != "") {
          var m = $('#example tr:has(td:contains(' + c + '))').css('background-color', 'lightgreen');
        }
      });
    },
    error: function(jqXHR, textStatus, errorThrown) {}
  });
});

<table id="example">
  <tr id="1000000107">
    <td>
      <input type="checkbox" id="J15000001" scanid="1000000103" onclick="call()" disabled="disabled" value="1000000103" class="ELOchecked">
    </td>
  </tr>
  <tr id="1000000107">
    <td>
      <input type="checkbox" id="J15000012" scanid="1000000107" disabled="disabled" value="1000000107" class="ELR">
    </td>
  </tr>
</table>
&#13;
&#13;
&#13;

enter image description here

3 个答案:

答案 0 :(得分:1)

您可以使用prop方法执行此操作。

$("#myOtherCheckbox").prop("disabled", false);

如果你想为它添加一个类:

$("#myOtherCheckbox").prop("disabled", false).addClass("someClass");

答案 1 :(得分:1)

你应该使用

("#J15000012").prop("disabled",false);

选中复选框,而不是使用.removeAttr,因为从false开始,它不会将值设置为jquery 3

答案 2 :(得分:1)

由于您已经拥有获取td的模式,因此您可以使用next('td')获取下一个模式:

var current_td = $('#example td:contains('+ c +')');

//If the current td found get the next one and remove the disabled property
if( current_td.length > 0 ){
    current_td.next('td').prop('checked',false);
}