在jquery

时间:2017-03-09 20:44:55

标签: jquery checkbox

我需要遍历所有复选框以设置按钮禁用与否。如果选中其中一个复选框,则启用该按钮。但是看起来我的代码没有遍历复选框。每个函数内的警报都没有显示。我在 How to loop through group of check boxes that have same class name?上找到了循环方法

有我的代码:

function setButton() {

                alert('line 24');
                var blnDisable = true;

                //https://stackoverflow.com/questions/35506843/how-to-loop-through-group-of-check-boxes-that-have-same-class-name
                $('.chkItem').each(function (index, obj) {
                    if (obj.checked == true) {
                        alert('line 30');
                        blnDisable = false;
                    }

                });
                alert('disable=' + blnDisable);
                    $("#btnDownload").attr("disabled", blnDisable);

            }

1 个答案:

答案 0 :(得分:1)

这将检查是否已选中任何复选框。如果是这样,它将启用复选框,否则它将禁用它。最后,我将它分配给一个函数,以便它可以在页面加载时运行。这很重要,因此它会自动检查是否应该在页面上启用下载按钮。

<input type="checkbox" class="chkItem" />one<br />
<input type="checkbox" class="chkItem" />two<br />
<input type="checkbox" class="chkItem" />three<br />
<button id="btnDownload">download</button>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>


var checkButton = function () {
    blnDisable = true;

    $('.chkItem').each(function (index, obj) {
        if (this.checked === true) {
            blnDisable = false;
        }
    });

    $("#btnDownload").attr("disabled", blnDisable);
};

$(".chkItem").on("change", checkButton);

checkButton();

</script>