質問: [jquery]チェックボックス検索後のチェックボックスをすべて解除したい このように選択されたチェックボックスをすべて解除するようなボタンを実装したいのですが、上記と違う点は「検索」ボタンを実行後に解除ボタンを押してもすべてリセットされないことです。 検索後のパラメータ?が残っているとかでしょうか。検索後だとリセットでは検索時のチェック状態にリセットされてしまいます。 ちなみに ----- ----- こんな書き方をすると検索前は何もチェックいれていない状態なのでチェックをいれてもすべてリセットしてくれますが、検索後ではすべてリセットできません。。 ご方法などご教授いただけないでしょうか。
回答: >「検索」ボタンを実行後に解除ボタンを押してもすべてリセットされない その「検索」ボタンの機能はどのように実装されているのでしょうか?普通は検索ボタンはform要素のsubmitを実行する(なので、検索結果をサーバ側で表示する)と思います。そのときにサーバから返すhtmlの初期状態として「チェックされていたものはチェック状態で返す」としても、その後のJavaScriptの動作に影響があるとは思えません。 閑話休題 わざわざ removeAttr を挟んでいるのは何故でしょうか?removeAttrで属性を削除してしまったら、いったんチェックしたあとでチェック状態を変化させられなくなりませんかね(汗 ∴ $("input[type='checkbox]").prop('checked', false) だけでいいのではありませんか? (蛇足) 素のJavaScriptだと下記のように書くケースですね(removeAttributeではうまく動きません)。 const reset = document.querySelector('#reset'); const ckbox = document.querySelectorAll('input[type="checkbox"]'); console.log(ckbox.length); reset.addEventListener('click', function() { for (let i=0; i< ckbox.length; i++) ckbox[i].checked = false; });