首页 / Jquery / 正文

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

5336 1评论 发布于: 2018-03-03 读完约需6分钟

问题描述

在前端开发中,我们需要使用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;
};

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: [SQL Server]SQL Server中如何从一张数据表中的某些字段值插入到另外一张已存在的数据表中呢?

下一篇: [SQL Server]SQL Server中如何替换数据表中某个列中所以符合条件的行的字符串?

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

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册

热门评论

a6892509 (2018-07-26 16:09)

多谢楼主
回复 赞(0)