質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

5006閲覧

全てチェックされるとボタンがアクティブになる動きをしたい

Meeeeeeee

総合スコア2

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/06/12 01:48

編集2020/06/12 02:29

前提・実現したいこと

まずは閲覧して下さりありがとうございます!
初質問で恐縮ですがjQueryについて少しつまずいているのでどなたかご教示頂けると幸いです泣

実装内容として、チェック(チェックボックス+ラジオボタン)が全てチェックされるとボタンが活性化しクリック出来るようになると言った感じです。

発生している問題

3つのチェックボックス+2つのURLに付随したラジオボタンを全て普通にクリックすると活性化はするのですが、
・URLの横に付随するラジオボタンを非表示にしてURL先へ別タブ遷移した時
上記チェックはつくのですがクリック判定?がついていないのか上手くJSが反応してくれません。
表示にした状態で普通にチェックボックスとラジオボタンをクリックすると反応してくれます。

<div class="agree_buttonArea"> <p><input type="checkbox" name="ag" value="1">&nbsp;注意事項1</p> <p><input type="checkbox" name="ag" value="2">&nbsp;注意事項2</p> <p><input type="checkbox" name="ag" value="3">&nbsp;注意事項3</p> <p class="url_check"> <input type="radio" name="check1"><a href="http://www.sample.url1" value="4" target="_blank" hidden>http://www.sample.url1</a> </p> <p class="url_check"> <input type="radio" name="check2"><a href="http://www.sample.url2" value="5" target="_blank" hidden>http://www.sample.url2</a> </p> </div> <!--ボタン--> <div class="bg_btn"> <p class="btn"> <a href="https://dummy" class="disabled">次画面へ</a> </p> </div> <!--END-->
URLリンククリック時ラジオボタンへチェック
  //URLリンククリック時ラジオボタンへチェック function urllockingCheck(){ $('.url_check a').click(function() { $(this).closest(".url_check").find("input[name='check1'],input[name='check2']").prop('checked',true); }); }
チェックボックス全選択&リンク全閲覧の時のみ次ページへの遷移ボタン活性化
//チェックボックス全選択&リンク全閲覧の時のみ次ページへの遷移ボタン活性化 function btnActiveCheck(){ const $button = $(".bg_btn .disabled"); const $check = $(".agree_buttonArea input"); $check.click(function(){ $button.removeClass("disabled"); if($(".agree_buttonArea input:not(:checked)").length !== 0){ $button.addClass("disabled"); } }); }

補足情報(FW/ツールのバージョンなど)

・jquery1.10.2です
・ページ再ロード時にも状態を確認してボタンの活性化有無をしたいです。(onLoadかdocument?を使うかで悩んでいます)
・関係ないとは思いますがdisabledに対して色の変化とevent無効のCSSをつけています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2020/06/12 02:02

「URLのラジオボタンを非表示にしてしまう」部分のコードはどこですか?
yambejp

2020/06/12 02:05

「URLのラジオボタンを非表示にしてしまうと(または別タブで開くと)上手く機能してくれなく」が何をやりたくて、どうできていないかわかりません。 補足お願いします
Meeeeeeee

2020/06/12 02:24 編集

@Lhankor_Mhyさん すみません、、、url_checkへhiddenを追加しました、、 こちらが対象の非表示にするラジオボタンです
Meeeeeeee

2020/06/12 02:35

@yamabejp さん 【発生している問題】をより詳細に書きました。 したい事としては注意文言を読んだという証拠(チェックボックスへ普通にチェック)、 URL内を閲覧したという証拠に非表示にしたラジオボタンへJSチェックを入れ、全てにチェックが入ったらボタンを次へ遷移できるボタンを活性化させるという処理を書きたいです。 普通にinput要素をクリックすると活性化させるボタンは上手く反応するのですが、 URLのラジオボタンを非表示にする or URLを別タブ遷移にすると活性化させたいボタンが上手く動いてくれません。
Lhankor_Mhy

2020/06/12 02:51

ご提示のコードを試してみましたが、問題なくdisableが変化しました。つまり、「上手く機能してくれなく困っています」という問題が再現しませんでした。 (なお、「非表示」の詳細が不明でしたので、CSSで消しています) https://jsfiddle.net/Lhankor_Mhy/k02m6gwn/ YanYanYanさんの環境では、↑のコードで問題が再現しますか?
Meeeeeeee

2020/06/12 03:12

@Lhankor_Mhy さん はい、次画面へ遷移できません。 チェックボックス ➡ URLの順でテストすると上手くいかない事が確認できるかと思います。
Lhankor_Mhy

2020/06/12 03:16

それはそうでしょうね…… URLをクリックしたときに遷移ボタン活性化する部分のコードをご提示ください。
Lhankor_Mhy

2020/06/12 03:19

ああ、もしかして、それを書き忘れてるのが原因ですか?
guest

回答1

0

ベストアンサー

こういうことでしょうか?

サンプル

js

1$(this).closest(".url_check").find("input[name='check1'],input[name='check2']").prop('checked',true);

↑を↓に変更

js

1$(this).closest(".url_check").find("input[name='check1'],input[name='check2']").click();

投稿2020/06/12 03:21

Lhankor_Mhy

総合スコア36115

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問