下拉列表更改时禁用复选框

时间:2016-06-16 04:58:22

标签: jquery ajax

我在这里遇到了jquery的问题。我需要的是,当下拉列表更改时,ajax将检查数据库中的记录,无论其是否已记录。如果是,我想禁用该复选框。所以用户无法再次检查。现在的问题是,复选框不工作..我已经尝试.prop和attr ..不知道问题出在哪里。希望有人能帮助我..

这里是代码

        function checkRekod(tahun, bulan, empid) {
            return $.ajax({
                url: "../../Payroll/CheckPayslip?tahun=" + tahun + "&bulan=" + bulan + "&empid="+ empid,
            });
        }

        $("#dpMonth, #dpTahun").change(function () {
            var bulan = $("#dpMonth").val();
            var tahun = $("#dpTahun").val();

            $('input:checkbox[id="naikgaji"]').each(function () {
                empid = $(this).val();

                var rekod = checkRekod(tahun, bulan, empid);
                rekod.success(function (data) {
                    if (data == 1) {
                        $(this).attr('disabled', true);
                    }
                });
            });
        });

2 个答案:

答案 0 :(得分:0)

你可以试试这样的

 $('input:checkbox[id="naikgaji"]').each(function () {
    var chk   = $(this);
    var empid = $(this).val();
    var rekod = checkRekod(tahun, bulan, empid);

    rekod.success(function (data) {
        if (data == 1) 
           $(chk).attr("disabled", true);
    });
 });

答案 1 :(得分:0)

试试这个

    $("#dpMonth, #dpTahun").change(function () {
        var bulan = $("#dpMonth").val();
        var tahun = $("#dpTahun").val();

        $('input:checkbox[id="naikgaji"]').each(function () {
            empid = $(this).val();
            // stored id in the local variable for disabling the element by this id.
            var elementId = this.id; 
            var rekod = checkRekod(tahun, bulan, empid);
            rekod.success(function (data) {
                if (data == 1) {
                   $(elementId).attr('disabled', 'disabled');
                }
            });
        });