如何在多选小部件中取消选中单个选中的复选框?

时间:2014-03-11 07:09:10

标签: php jquery ajax checkbox

我想在多选小部件中自动取消选中已选中的复选框。我在多选小部件的复选框上执行click事件。单击复选框后,我通过ajax向php页面发送请求以检查某些结果。如果我成功获得结果,那么我只是向用户发出警报。然后在警报后我想自动取消选中该复选框。我正在提供我的代码。 这是我的jquery代码:

$("#multiselectunittype").multiselect("widget").on('click',':checkbox',function(e)
            {

                $.ajax({
                    url: "checkforentry2.php",
                    type: "POST",
                    data: 
                    {
                        chargetype : $('#ddlchargetype').val() 

                    },
                    success: function(data, textStatus, jqXHR)
                    {
                         if(data == "No")
                         {

                         } 

                         else
                         {
                            alert(data);
                            $(this).prop('checked',false);


                         }

                    }

                    });

            }); 

所以请告诉我该怎么做?

1 个答案:

答案 0 :(得分:1)

默认情况下,上下文是一个对象,表示调用中使用的ajax设置($.ajaxSettings与传递给$.ajax的设置合并)。

所以这里$(this)代表ajax设置

你可以添加黑客

$("#multiselectunittype").multiselect("widget").on('click',':checkbox',function(e){
  var $element=$(this);    
  $.ajax({
           url: "checkforentry2.php",
           type: "POST",
           data:{
                  chargetype : $('#ddlchargetype').val() 
                },
           success: function(data, textStatus, jqXHR){
                      if(data == "No"){

                       }else{
                         alert(data);
                         $($element).prop('checked',false);
           }
         }

        });
    }); 

或者您可以在ajax设置中使用context选项:

context: this,
success:fuction(){
  $(this).prop('checked',false);
}