2

嗨,伙计们,我需要在发出 ajax 请求后选中某些复选框。

ajax 请求确实从另一个页面中提取复选框,并且使用的 jquery 在原始页面上。我不知道该怎么做我正在尝试:

<input type="checkbox" class="case" name="case" value="1"/>
<input type="checkbox" class="case" name="case" value="2"/>
<input type="checkbox" class="case" name="case" value="3"/>
<input type="checkbox" class="case" name="case" value="4"/>

$(document).ready(function() 
{
    $(function()
    {
        $("#selectall").on('click', function(){
            $('.case').attr('checked',this.checked);
        });

        $(".case").on('click', function(){
            if($(".case").length==$(".case:checked").length)
            {
                $("#selectall").attr("checked","checked");
            }
            else
            {
                $("#selectall").removeAttr("checked");
            }
        });
    });});

当不涉及 ajax 请求时,它工作正常。我想知道是否有人可以帮助我找到一种方法来允许在使用 ajax 请求时检查复选框?

谢谢

4

3 回答 3

0

我想最好检查获取这些复选框的页面中的复选框。因此,使用 ajax 加载 html,而不是在加载完成时选中复选框

于 2013-05-15T18:16:18.417 回答
0

即使在ajax加载之后,您也需要使用jquery“on” http://api.jquery.com/on/来绑定点击......

<input type="checkbox" class="case" name="case" value="1"/>
<input type="checkbox" class="case" name="case" value="2"/>
<input type="checkbox" class="case" name="case" value="3"/>
<input type="checkbox" class="case" name="case" value="4"/>

<SCRIPT>
$(function(){
    $("#selectall").on('click', function(){
        $('.case').attr('checked',this.checked);
    });

    $(".case").on('click', function(){
        if($(".case").length==$(".case:checked").length)
        {
            $("#selectall").attr("checked","checked");
        }
        else
        {
            $("#selectall").removeAttr("checked");
        }
    });
});
</SCRIPT>
于 2013-05-15T18:20:48.267 回答
0

您需要委托事件..

由于绑定事件时页面上的复选框尚不可用。因此,将它们委托给静态父容器应该可以解决问题。

$(staticContainer).on.('click', "#selectall", function ({
    $('.case').prop('checked', this.checked);
});

$(staticContainer).on.('click', 'case', function () {
    if ($(".case").length == $(".case:checked").length {
        $("#selectall").prop("checked", true);
    } else {
        $("#selectall").prop("checked", false);
    }
});

取消选中复选框而不是删除它的属性总是一个好主意。

于 2013-05-15T18:21:11.800 回答