我如何确定是否已选中某个复选框以执行某项操作,然后取消选中该复选框以执行其他操作?

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

我有一个PHP数组,该数组以一种形式填充复选框的ID,然后使用jQuery捕获这些ID。现在,我很难编写一条If / Else语句来确定该复选框是否已选中,是否需要做一件事,以及是否未选中则要做其他事情。该代码在If语句之外起作用,但是一旦我添加任何其他方法来确定是否选中它,它就会停止工作。

[我使用的不同方法是:.click,.is(':checked')、. prop和(this.checked),但没有任何效果。

此(和.change)有效:

$('#' + product_array[i]).click(function(){

     alert(product_array[i]);

});

此(以及上述所有其他方法)不:

$('#' + product_array[i]).click(function(){

    if(this.checked){
        alert('checked');
    }
    else {
        alert('unchecked');
    }
});
php jquery arrays checkbox checked
1个回答
0
投票

解决方案1

$("input[type='checkbox']").on("change", function(){
   if($(this).prop('checked'))
    console.log("Checked");
   else
    console.log("UnCheck"); 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" />

解决方案2

您可以使用该类来列出您的复选框change事件,如下所示。

$(".myCheckBox").on("change", function(){
   if($(this).prop('checked'))
    console.log("Id: " + $(this).attr("id") + " Checked");
   else
    console.log("Id: " + $(this).attr("id") + " UnChecked");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="myCheckBox" type="checkbox" id="1" />
<input class="myCheckBox" type="checkbox" id="2" />
<input class="myCheckBox" type="checkbox" id="3"/>
© www.soinside.com 2019 - 2024. All rights reserved.