ここから本文です

3つチェックされたらボタンを表示するようにしたいです。

アバター

ID非公開さん

2019/7/3102:23:01

3つチェックされたらボタンを表示するようにしたいです。

2つ以下のチェックならボタンは非表示という事です。

jQueryのバージョンを最新(3.4.1)にすると処理されません。
逆に、バージョン1.11.3なら正常に処理されます。

___________________________________________________________________________________

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
___________________________________________________________________________________
↑これを、1.11.3にすると正常に動く。


ver.3.4.1でも処理されるようなコードを教えてください。

また、3.4.1では処理されないとかどこのサイトを見ればわかるのでしょうか?


該当コードは下記の通りです。

【HTML】
___________________________________________________________________________________

<input type="checkbox" class="check" name="checksample" value="1">
<label for="check1">チェックボックス1</label><br />
<input type="checkbox" class="check" name="checksample" value="2">
<label for="check2">チェックボックス2</label><br />
<input type="checkbox" class="check" name="checksample" value="3">
<label for="check3">チェックボックス3</label> <br />
<hr />
<div class="submit">
<input class="submit-test" type="submit" value="送信">
</div>

___________________________________________________________________________________


【CSS】
___________________________________________________________________________________

.submit{
display : none;
}

___________________________________________________________________________________


【jQuery】
___________________________________________________________________________________
$(function () {
$('.check').click(function () {
if ($("input[type=checkbox]:not(:checked)").size() == 0) {
$(".submit").css("display", "block");
} else {
$(".submit").css("display", "none");
}
});
});
___________________________________________________________________________________

閲覧数:
17
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

glo********さん

2019/8/101:37:43

「jquery 要素が存在するかをチェックする – エラーの向こうへ」
https://tech.mktime.com/entry/134
~引用~
> 要素の長さを取得するのに.size()が使われている場合がある。
> しかし、.size()はjQuery1.8以降で非推奨の関数となり、
> jQuery3では廃止されているので
> たとえ.size()が使える環境であっても
> .lengthを使うのがよいだろう。

というわけで

if ($("input[type=checkbox]:not(:checked)").size() == 0) {
    ↓変更↓
if ($("input[type=checkbox]:not(:checked)").length == 0) {

  • アバター

    質問者

    ID非公開さん

    2019/8/101:56:24

    ありがとうございます。解決しました。

    ちなみに、今回のようにどのメソッドがjQuery3.4.1では使えないなど、どのようにしてわかりましたか?

    もちろんググったからだとは思いますが、
    実際、今回の件でどのようにググったのか知りたいです。
    それとも、あなたは既に、size は現行では廃止されているという事を知っていたのでしょうか?

    サイト上に転がっているコードをコピペしても、
    バージョンのせいで正常に処理されない場合、
    どのような方法で、解決に至るのかを知りたいです。

    短いコードならまだしも(今回も短い方だとは思いますが)、
    長いコードなら、どこからググれば良いかも検討もつきません。

  • その他の返信(2件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

アバター

質問した人からのコメント

2019/8/4 13:00:34

ありがとうございました。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる