我有一个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');
}
});
解决方案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"/>