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

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

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

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

HTML

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

Q&A

解決済

1回答

1753閲覧

チェックボックスの親子孫関係

flyingHigh

総合スコア41

jQuery

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

HTML

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

0グッド

0クリップ

投稿2021/02/09 20:04

編集2021/02/09 20:10

チェックボックス3つを親子孫の関係にしたいです。
直近の上位者(aaa)がアクティブ時には下位者(bbb)がアクティブになる関係を目指しています。
直近の上位者(bbb)がアクティブにならないとcccがアクティブになれない関係です。
aaa,bbbをチェック済み、cccにチェック無しの時に親(aaa)からチェックを外すと
孫(ccc)がアクティブになってしまいます。
親(aaa)がチェック無しの場合は、子(bbb)も孫(ccc)も非アクティブになり押せなくしたいのですが、
どうすればよいでしょうか。

html

1<fieldset> 2 <div> 3   <ul class="select--area parent--01"> 4 <li class="select--area--sub"> 5 <span> 6 <input type="hidden" name="aaa" value="0"> 7 <input type="checkbox" name="aaa" value="1" id="aaa" checked="checked"> 8 <label for="aaa"> 9 <span>aaa</span> 10 </label> 11 </span> 12       <ul class="outer--01 select--area"> 13   <li class="select--area--sub"> 14 <span class="nest--01"> 15  <input type="hidden" name="bbb" value="0"> 16  <input type="checkbox" name="bbb" value="1" id="bbb"> 17  <label for="bbb"> 18  <span>bbb</span> 19  </label> 20 </span> 21 <ul> 22  <li class="select--area--sub"> 23  <span class="inner--01"> 24  <input type="hidden" name="ccc" value="0"> 25  <input type="checkbox" name="ccc" value="1" id="ccc" class="checkSet"> 26  <label for="ccc" class="text-checkbox"> 27  <span>cccc</span> 28  </label> 29  </span> 30  </li> 31 </ul> 32 </li> 33   </ul> 34 </li> 35 </ul> 36 </div> 37</fieldset>

jquery

1$(function(){ 2 $('ul[class*="parent--"] > li.select--area--sub > span > input').on('change', function () { 3 var flg=$(this).prop('checked'); 4 $(this).closest('.select--area') 5 .find('span[class*="nest--"]').toggleClass('active',flg) 6 .find('>input').prop('disabled', !flg); 7 8 $('ul>li>span[class*="nest--"]').find('span[class*="inner--"]').toggleClass('active',flg) 9 .find('>input').prop('disabled', !flg); 10 }).trigger('change'); 11}); 12 13$(function(){ 14 $('ul[class*="outer--"] > li.select--area--sub > span > input').on('change', function () { 15 var flg=$(this).prop('checked'); 16 $(this).closest('.select--area') 17 .find('span[class*="inner--"]').toggleClass('active',flg) 18 .find('>input').prop('disabled', !flg); 19 }).trigger('change'); 20});

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

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

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

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

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

yambejp

2021/02/10 01:26 編集

もう少し条件を明確にして下さい A,B,Cがつねに同じチェック状態というわけではないのですよね? Aをチェック/非チェックするとB,Cはどうなる? Bをチェック/非チェックするとA,Cはどうなる? Cをチェック/非チェックするとA,Bはどうなる? それともAが非チェック時はB,Cはdisabledってことですかね?
flyingHigh

2021/02/10 01:48

>それともAが非チェック時はB,Cはdisabledってことですかね?  そうです。Aをチェック時にBがアクティブに、Bをチェック時にはCがアクティブになります。  Aを非チェック時にはB,Cはdisabled、Bを非チェック時にはCがdisabledになります。  Cをチェック時にはA,Bともアクティブ状態なのは変わらず、A,B共チェックが入ったままになります。  Cを非チェック時でもA,Bともアクティブ状態なのは変わらず、A,B共チェックが入ったままになります。 >Aをチェック/非チェックするとB,Cはどうなる?  Aをチェック時はBだけがアクティブになります。  Bはチェックが入っていようがなかろうがアクティブになるだけです。  Aを非チェック時はB,Cはdisabledになります。 >Bをチェック/非チェックするとA,Cはどうなる?  Bをチェック時はCがアクティブになります。Aはアクティブのままチェックが入った状態です。  Bを非チェック時はCがdisabledになり、Aはアクティブのままです。 >Cをチェック/非チェックするとA,Bはどうなる?  Cをチェック時はBもAもアクティブ状態、チェックが入ったままです。  Cを非チェック時もBもAもアクティブ状態、チェックが入ったままです。
guest

回答1

0

ベストアンサー

javascript

1$(function(){ 2 $(':checkbox').on('change',function(){ 3 $(this).closest('li').find('>ul>li>span>:checkbox').prop('disabled',!$(this).prop('checked')||$(this).prop('disabled')).trigger('change'); 4 }).trigger('change'); 5});

投稿2021/02/10 02:03

yambejp

総合スコア114814

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問