当我单击复选框时,如果选中了复选框,我需要触发一些代码。
但由于某些原因,.is(':checked')
总是被触发。
这是我的代码。
jQuery('#selectlist input[type=checkbox]').live('click',function(){
var select_id = jQuery(this).attr('id');
if(jQuery(this).is(':checked')) {
alert('You have unchecked the checkbox');
// Remove some data from variable
} else {
alert('You have checked the checkbox');
//Add data to variable
}
}
更新
我在JSFiddle上添加了一个示例:http://jsfiddle.net/HgQUS/
答案 0 :(得分:2)
使用change
代替click
答案 1 :(得分:1)
$(this).val();
或
$(this).prop('checked'); # on jquery >= 1.6
你会更善于搜索SO:
答案 2 :(得分:1)
this.checked
应该告诉你是否选中了复选框,虽然这只是javascript,所以你将无法在'jquery'元素上调用它。例如 -
<input type="checkbox" id="checky">
$("#checky")[0].checked
答案 3 :(得分:1)
如果输入具有checked属性,则显然已选中,如果未选中则将其删除。
if ($(this).attr("checked")) {
// return true
}
else {
// return false
}
但是,您可以调整上面的代码来检查属性是否未被删除,而是设置为true / false,如下所示:
if ($(this).attr("checked") == "true") {
// return true
}
else {
// return false
}
此外,我看到你使用jQuery作为选择器的运算符,你可以使用美元$
符号,因为这是一个捷径。
答案 4 :(得分:1)
我翻了警报,它对我有用:
<script type="text/javascript">
jQuery('#selectlist input[type=checkbox]').live('click',function(){
var select_id = jQuery(this).attr('id');
if(jQuery(this).is(':checked')) {
alert('You have checked the checkbox');
// Remove some data from variable
} else {
alert('You have unchecked the checkbox');
//Add data to variable
}
});
</script>
答案 5 :(得分:0)
您的“if”语法不正确。
jQuery('#selectlist_categories input[type=checkbox]').live('click',function(){
var cat_id = jQuery(this).attr('id');
// if the checkbox is not checked then alert "You have unchecked the checkbox"
if(!jQuery(this).is(':checked')) {
alert('You have unchecked the checkbox');
} else {
//else alert "You have checked the checkbox"
alert('You have checked the checkbox');
}
});
答案 6 :(得分:0)
如果您在检查它时为何说unchecked
感到困惑。您的代码没有什么 错误 ,您可以在以下警报中将unchecked
和checked
彼此切换:
$('#selectlist_categories input[type=checkbox]').on('change',function(){
var cat_id = $(this).attr('id');
let cat_idText = $("input[type=checkbox]:checked").val();
if(jQuery(this).is(':checked')) {
alert('You have checked the checkbox' + " " + `${cat_idText}`);
} else {
alert('You have unchecked the checkbox');
}
});
PS:我更新了脚本,使其可以在 jQuery 3.5.1 中使用,而带有
中添加的live()
的原始脚本仅在 jQuery 1.7 上有效,因为该脚本已在 1.9 代替使用on()
,在 jQuery 3.5.1 上,您可以使用$
代替jQuery
和{{3} }函数适用于所有版本,因为它是在 jQuery 1.0
或者以一种更好的方式将if语句更正为 RickyCheers
,即在!
或jQuery
之前添加$
然后if语句会将其变成如果未选中jQuery Element
$('#selectlist_categories input[type=checkbox]').on('click',function(){
var cat_id = $(this).attr('id');
if(!jQuery(this).is(':checked')) {
alert('You have unchecked the checkbox');
} else {
alert('You have checked the checkbox');
}
});