如何使用委托检查动态复选框和POST到ajax?

问题描述 投票:0回答:1

我有一个复选框,这些复选框是使用while语句中的数据库动态生成的,如下所示:

 while($getplands = mysqli_fetch_assoc($getplanresults)){
     <tr>
<td><input class="thisinput" type="checkbox" value="'.$getplands['id'].'"></td>
     </tr>
}

当用户点击复选框时,必须发生两件事

  1. 数据被发送到ajax并在div中显示回调响应
  2. 选中该复选框

如果我使用下面的代码,复选框不会检查,但我能够使用ajax从数据库中获取数据并显示用户选择。

$('.thisinput').click(function(e){//a checkbox is checked

$(this).prop('checked', true);//does not work here

 $.ajax({//works here
                        type: 'POST',
                        url: 'fetch.php',
                        data:values,
                        dataType: 'json',
                        success: function(datas)
                        {
                        $('#mychoice > tbody:last').append(datas.mychoice);
                        }

                 });    
});

如果我使用下面的代码,则选中该复选框,但我无法使用ajax从数据库中获取数据并显示用户选择。

    $('.thisinput').on('change', 'input:checkbox', function(){
    $(this).prop('checked', true);//works here

 $.ajax({//does not work here
                        type: 'POST',
                        url: 'fetch.php',
                        data:values,
                        dataType: 'json',
                        success: function(datas)
                        {
                        $('#mychoice > tbody:last').append(datas.mychoice);
                        }

                 });   
    });
jquery onclick onchange event-delegation
1个回答
1
投票

好吧所以我只是解决了这个问题。下面的代码适合我。

  $('.thisinput').on('change',function(){
    $(this).prop('checked', true);//works here

 $.ajax({//works here
                        type: 'POST',
                        url: 'fetch.php',
                        data:values,
                        dataType: 'json',
                        success: function(datas)
                        {
                        $('#mychoice > tbody:last').append(datas.mychoice);
                        }

                 });   
    });
© www.soinside.com 2019 - 2024. All rights reserved.