问题描述
在前端开发中,我们需要使用jQuery判断/检测一个复选框的选中状态,对应复选框的属性为checked
。
比如,有一个年龄的复选框,当这个年龄的复选框处于被选中的状态时,我们显示出了个文本框textbox
,让用户输入对应的年龄值,否则这个文本框处于隐藏状态。
以下的方法 并不正确:
if ($('#isAgeSelected').attr('checked'))
{
$("#txtAge").show();
}
else
{
$("#txtAge").hide();
}
那么,我们应用如何使用jQuery来实现以上复选框选中状态的判断和检测呢?
方案一
复选框checkbox
的checked
属性会返回是否被选中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>
方案二
可以使用jQuery
的is()
函数:
if($("#isAgeSelected").is(':checked'))
$("#txtAge").show(); // 选中状态
else
$("#txtAge").hide(); // 未选中状态
方案三
jQuery
1.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;
};
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册