次のコードでは、jQuery を使用しています。
$("input").change(function(evt) {
console.log("change event handler invoked", evt);
console.log($("input").is(':checked'));
console.log($("input").attr("checked"));
console.log($("input").prop("checked"));
});
$("input").trigger("click");
$("input").trigger("click");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id="the-input" type="checkbox">
is(':checked')
とはprop("checked")
両方とも true を表示できますが、`attr("checked") は未定義と表示されます。同じだと思った?(チェックボックスを手動でクリックしても同じ効果です)。
また、checked
チェックボックスがデフォルトでチェックされるようにHTMLで設定すると(http://jsfiddle.net/UcGyM/1/)、両方のトリガーに対してattr("checked")
出力されるため、checked
チェックされているかどうか - それはなぜですか? checked
(どちらも が表示されますが、$("input").attr("checked", true);
or$("input").attr("checked", false);
をオンまたはオフにできるのも奇妙です。)
関連する質問は、 を使用することを主張したい場合、それは HTML で属性attr("checked")
を持たなければならないということですか? ( or orはデフォルトでオフにしないためです。checked
<input type="checkbox" checked>
checked="false"
checked=""
checked="0"