checkbox.attr("checked) as if 句子从句

checkbox.attr("checked) as if sentence clause

我有一个复选框,我想将其用作我的 jQuery 程序的 if 子句,但似乎无法正确使用 if 语句(我希望在复选框被选中时发生一些事情) .这意味着,我不希望在选中该框时发生某些事情,如果在调用函数时选中该框,我希望它作为函数的一部分发生。我在下面设置了一个 fiddle 来说明发生了什么。这将 return 相同(“我不想看到以前的选择!)无论是否选中 #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>

您不想只检查 属性,您想要响应已检查的事件。这就是为什么您需要绑定到复选框事件:

$("#prePic").change(function() {
    if(this.checked) {
        console.log("I want to see the previous picks!");
    }
});

您需要使用 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>

嗯...我想我终于明白你的问题了:) 您不关心处理复选框的选中事件。如果复选框被选中,你只是想做一些事情:)

嗯,你不用 attr,你需要使用 prop,像这样:

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

为您的输入添加一个 ID,因为您使用的是 ID“#prePick”的选择器

<input type='checkbox' id='prePick' name='prePick'>