チェックボックスをオフにすると、ユーザーが意図したものであることを確認する必要があります。ダイアログボックスのキャンセルを確認した後に入力チェック属性が機能しない
私はon.changeイベントを聞いて、ダイアログにconfirm()
を使用しています。ユーザーが「キャンセル」をクリックすると、チェックボックスをリセットするコードがあります。しかし、それはそれに従わない。 'checked = "checked"属性は期待通りに配置されますが、チェックされているようには表示されません。
は、ここでそれを説明するJSFiddleだ:以下https://jsfiddle.net/0tvzLbgk/9/
がコードです。
$('#box').on('change', 'input', function() {
var $me = $(this);
if (this.checked) {
// Item has been checked, do nothing
}
else {
// Item has been unchecked
// Make sure it was not an accident
var confirmReset = confirm("Reset checkbox?");
if (confirmReset == true) {
// Okay, reset
}
else {
// Mistake, mark as checked again
$me.attr('checked', 'checked');
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="box">
<input type="checkbox" />
</div>
それはchecked属性を以下のいない、なぜ誰でも知っていますか?
使用 '$のme.prop( '確認'、 '確認');'の代わりに '$のme.attr( '確認の'、' checked '); ' – Corporalis
理由についての説明は[this](http://stackoverflow.com/a/426276/4045532)を読む価値があります – Corporalis
リンクをありがとうございました。私はそれを残したので、attr() 'はコード内の他の場所で働いていました。私は 'prop()'にチェックされている 'attr()'のすべてのインスタンスを更新しました。ありがとう! –