如何取消选中已检查的输入

时间:2014-05-07 13:49:33

标签: javascript jquery

对于每个活动,我都可以预订用户。但如果没有可预订的免费地点,我会向用户显示错误消息。现在我想禁用他选择的复选框(某些事件)。

选择后,我的输入如下所示:

<input type="checkbox" checked="checked">

现在在JS。如果已经预订了此活动,并且我没有显示免费地点:

$('.jtable tr.jtable-data-row td.jtable-selecting-column input:checkbox').click(function(){
if($(this).is(":checked")) {
        var closestTr = $(this).closest('tr').attr('data-record-key');
        $.ajax({
             url: 'Actions.php?action=resp',
             type: 'post',
             data: '&id='+closestTr,
             success: function(output) 
               var $res = output.substring(11, 14); 
               if( $res == 'NOK' ){
                  $(this).prop('checked', false);
                  alert('Already booked.'); 
                       }
             }, error: function()
               alert('something went wrong');
             }
       });
} 

});

由于某种原因,我无法取消它,我已经尝试了10件事而没有结果。我做错了什么?

4 个答案:

答案 0 :(得分:0)

尝试以下方法:

1。)$(this).prop('checked', '');

2。)$(this).attr('checked', '');

我更喜欢change事件而不是click

答案 1 :(得分:0)

您没有正确选择复选框

$('.jtable tr.jtable-data-row').on("click", "td.jtable-selecting-column input:checkbox ",function(){
  if($(this).is(":checked")) {
       var $res = output.substring(11, 14); 
       if( $res == 'NOK' ){
            $(this).prop('checked', false);
            alert('Already booked.'); 
       }
  }
});

答案 2 :(得分:0)

你可以试试这个

$(this).prop('checked', false);

    or 

$(this).attr('checked', false);

答案 3 :(得分:0)

我已经解决了它,

var closestTr = $(this).closest('tr').attr('data-record-key');
var th=$(this);

而不是AJAX的成功:

if( $res == 'NOK' ){
    th.prop('checked', false);
    alert('Already booked.'); 
}