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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

1146閲覧

複数のチェックボックスから、最後に選択されたテキストだけを表示したいです

tomtom199

総合スコア10

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/08/22 11:14

編集2021/08/22 11:33

こんにちは。

***実現したいこと***
複数選択可能なチェックボックスから、最後に選択されたテキストだけを表示させて、それより前に選択されたのは非表示にさせたいです。
もし選択が解除された場合も常に最後に選択されたものを表示させたいです。
例)
1回目は”USA”を選択 => ”USA”と表示
2回目は”JAPAN”を選択 => ”JAPAN"と表示
3回目は”CHINA”を選択 => ”CHINA"と表示

もし”JAPAN”の選択解除 => ”CHINA"と表示
もし”CHINA”の選択解除 => ”JAPAN"と表示

***現在の状況***
セレクトボックスをカスタマイズできるselect2(select2)を使用していて、複数選択可能な状態です。複数選択した場合、defaultで全てのテキストが表示されている状態です(スクリーンショット)

ちなみに各要素にはdata属性があり、選択されていく度に数字は大きくなっていきます。
1回目に取得された要素の吐き出し(data-select2-id="29")
2回目に取得された要素の吐き出し(data-select2-id="30")
3回目に取得された要素の吐き出し(data-select2-id="31")
それを利用して、最後に選択されたテキストを取得してそれだけを表示させたいです。

または選択される度に、選択されたテキストを取得し配列に格納して、配列内の最後の要素を取得して表示させる方がコードは短く書けますでしょうか?

初心者ですので、知識不足やアプローチの仕方に欠けてる点がありますのでご指摘やご教授頂けますと幸いです。

イメージ説明

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

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

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

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

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

yambejp

2021/08/23 00:53

チェックボックスとテキストがどう関係しているのかわかりません
guest

回答2

0

  • 空のリストを用意しておく (配列か Set が適当でしょう)
  • 対象のチェックボックスの change イベントを監視して、チェックされたらリストの最後に追加して、対応するテキストを表示する。チェックが外れたら、リストから削除して、リスト内の最後のチェックボックに対応するテキストを表示する

投稿2021/08/23 01:06

int32_t

総合スコア20884

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

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

0

命題が曖昧なので最後にチェックしたもの以外disabledにする方法

javascript

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 const g=[...document.querySelectorAll('.group')]; 4 const ch=[]; 5 g.forEach(x=>{ 6 x.addEventListener('change',e=>{ 7 const num=g.indexOf(e.target); 8 e.target.checked?ch.push(num):ch.pop(); 9 g.forEach(x=>{ 10 x.disabled=(x.checked && g.indexOf(x)!==ch.slice(-1)[0]); 11 }); 12 }); 13 }); 14}); 15</script> 16<input type="checkbox" class="group"> 17<input type="checkbox" class="group"> 18<input type="checkbox" class="group"> 19<input type="checkbox" class="group"> 20<input type="checkbox" class="group">

投稿2021/08/23 00:54

yambejp

総合スコア114843

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問