我有一个复选框,我想用作我的jQuery程序的if子句,但似乎无法正确获得if句子(如果选中该框,我想要发生一些事情)。这意味着,当检查框时,我不希望发生某些事情,如果在调用函数时检查框,我希望它作为函数的一部分发生。我在下面设置了一个小提琴来说明发生了什么。这将返回相同的(“我不想看到以前的选择!”)是否检查了#prePick复选框,我不知道为什么。
function checkPick() {
if($('#prePick').prop('checked')) {
console.log("I want to see the previous picks!");
}
else {
console.log("I don't want to see previous picks!");
}
};
checkPick();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="options">
<input type='checkbox' name='prePick'> Show Logged Picks
</div>
答案 0 :(得分:1)
为您的输入添加一个ID,因为您正在使用id&#34; #prePick&#34;
的选择器<input type='checkbox' id='prePick' name='prePick'>
答案 1 :(得分:0)
您不想只检查属性,您想要响应已检查的事件。这就是你需要绑定到复选框事件的原因:
$("#prePic").change(function() {
if(this.checked) {
console.log("I want to see the previous picks!");
}
});
答案 2 :(得分:0)
您需要使用prop函数或按照Jquery标准方式运行。 工作示例:FIDDLE 示例:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>prop demo</title>
<style>
p {
margin: 20px 0 0;
}
b {
color: blue;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<input id="check1" type="checkbox" checked="checked">
<label for="check1">Check me</label>
<p></p>
<script>
$( "input" ).change(function() {
var $input = $( this );
$( "p" ).html(
".attr( \"checked\" ): <b>" + $input.attr( "checked" ) + "</b><br>" +
".prop( \"checked\" ): <b>" + $input.prop( "checked" ) + "</b><br>" +
".is( \":checked\" ): <b>" + $input.is( ":checked" ) ) + "</b>";
}).change();
</script>
</body>
</html>
答案 3 :(得分:0)
好吧,你没有使用attr
,你需要使用prop
,如下所示:
$('#myCheckbox').prop('checked')