我需要检查复选框的checked
属性,并使用 jQuery 基于 checked 属性执行操作。
例如,如果选中年龄复选框,则需要显示文本框以输入年龄,否则隐藏文本框。
但是以下代码默认返回false
:
if ($('#isAgeSelected').attr('checked'))
{
$("#txtAge").show();
}
else
{
$("#txtAge").hide();
}
如何成功查询已checked
属性?
如何成功查询已检查的属性?
复选框 DOM 元素的checked
属性将为您提供元素的已checked
状态。
鉴于您现有的代码,您可以这样做:
if(document.getElementById('isAgeSelected').checked) {
$("#txtAge").show();
} else {
$("#txtAge").hide();
}
但是,使用toggle
有一种更漂亮的方法:
$('#isAgeSelected').click(function() {
$("#txtAge").toggle(this.checked);
});
<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(); // checked
else
$("#txtAge").hide(); // unchecked
使用 jQuery> 1.6
<input type="checkbox" value="1" name="checkMeOut" id="checkMeOut" checked="checked" />
// traditional attr
$('#checkMeOut').attr('checked'); // "checked"
// new property method
$('#checkMeOut').prop('checked'); // true
使用新属性方法:
if($('#checkMeOut').prop('checked')) {
// something when checked
} else {
// something else when not
}