【问题标题】:Checking if the input is checked always returns true检查输入是否被检查总是返回 true
【发布时间】:2012-05-21 11:33:25
【问题描述】:
我正在尝试这样:
if($('input:checkbox:checked').length > 0 == false){
但这总是会返回true,不管是否检查
注意:DOM 中只有一个复选框。
【问题讨论】:
标签:
javascript
jquery
forms
checkbox
【解决方案1】:
试试:
if(!$("input:checkbox").is(":checked")){
//not checked
}
【解决方案2】:
if(!$('input:checkbox').prop('checked')){ //do stuff
注意:prop() 需要 jquery 版本 > 1.6
【解决方案3】:
if($('input[type="checkbox"]:checked').length ==0){
【解决方案4】:
试试这个
if($("input:checkbox").is(":checked")){
alert('checkbox is checked')
}
else
{
alert('checkbox is not checked')
}
如果您的表单中有多个复选框而不是像这样迭代每个复选框
$('input:checkbox:checked').each(function () {
var value = $(this).attr('value');
alert(value);// it returns on or off, depends on checked or unchecked
});
【解决方案5】:
$.extend($.expr[':'], {
unchecked: function (obj) {
return ((obj.type == 'checkbox' || obj.type == 'radio') && !$(obj).is(':checked'));
}
});
if(($('input:unchecked').length > 0)=== false)