[javascript]jQuery如何判断/检测一个复选框checkbox是否已被选中?

Jquery 作者: Rector 144阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

在前端开发中,我们需要使用jQuery判断/检测一个复选框的选中状态,对应复选框的属性为checked
比如,有一个年龄的复选框,当这个年龄的复选框处于被选中的状态时,我们显示出了个文本框textbox,让用户输入对应的年龄值,否则这个文本框处于隐藏状态。
以下的方法 并不正确

if ($('#isAgeSelected').attr('checked'))
{
    $("#txtAge").show();
}
else
{
    $("#txtAge").hide();
}

那么,我们应用如何使用jQuery来实现以上复选框选中状态的判断和检测呢?

方案一

复选框checkboxchecked属性会返回是否被选中checked的状态,我们可以作类似如下的判断:

if(document.getElementById('isAgeSelected').checked) {
    $("#txtAge").show();
} else {
    $("#txtAge").hide();
}

或者,我们可以使用更简洁的代码来实现控制年龄文本框的显示与隐藏状态,如:

$('#isAgeSelected').click(function() {
    $("#txtAge").toggle(this.checked);
});

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="isAgeSelected"/>
<div id="txtAge" style="display:none">Age is something</div>

方案二

可以使用jQueryis()函数:

if($("#isAgeSelected").is(':checked'))
    $("#txtAge").show();  // 选中状态
else
    $("#txtAge").hide();  // 未选中状态

方案三

jQuery1.6及以上版本中,我们还可以使用新的方法prop()

<input type="checkbox" value="1" name="checkMeOut" id="checkMeOut" checked="checked" />

// 传统的获取属性的方法:attr
$('#checkMeOut').attr('checked'); // "checked"
// 新的获取属性的方法:prop
$('#checkMeOut').prop('checked'); // true

prop()方法使用示例:

if($('#checkMeOut').prop('checked')) {
    // 选中状态的逻辑
} else {
    // 未选中状态的逻辑
}

方案四

jQuery 1.6+

$('#isAgeSelected').prop('checked')

jQuery 1.5 and below

$('#isAgeSelected').attr('checked')

任何版本的jQuery

if (this.checked)

方案五

javascript:

$("#planned_checked").change(function() {
        if($(this).prop('checked') == true) {
            alert("Checked Box Selected");
        } else {
            alert("Checked Box deselect");
        }
    });

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" name="planned_checked" checked id="planned_checked"> Planned

方案六

在不使用任何jQuery的情况下实现相同的功能:

var ageCheckbox = document.getElementById('isAgeSelected');
var ageInput = document.getElementById('txtAge');

ageCheckbox.onchange = function() {
    ageInput.hidden = this.checked ? false : true;
};

阅读了该文章的人还浏览了...

本文永久链接图享网 » [javascript]jQuery如何判断/检测一个复选框checkbox是否已被选中?

发布于: 2018-03-03 09:45:38
分享扩散:

文章评论

获取验证码