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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

CSS

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

Q&A

解決済

1回答

1534閲覧

【JS】(条件あり)selectで選択肢によってボタンを活性・非活性に切り替えたい

TMTN

総合スコア53

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2022/08/18 09:26

実装したいこと

現状、タイトルにあるselectで選択肢によってボタンを活性・非活性に切り替えは実現できています。

select内のoptionにそれぞれvalueで値を1〜5まで割り当てており、
jsを使って現在はvalue="2"であれば非活性、それ以外は活性としております。

上記は条件通り実装できているのですが、値が2と4だった場合に
value="2"の箇所をvalue="2" || "4"と変更したら実現できるだろうと試してみましたが、全て非活性となってしまいます。

2と4の場合、非活性
それ以外の場合、活性

上記のように実装するには何が原因なのでしょうか・・
console.logを利用して2と4を取得できているのは確認できています。

あと一歩のところで行き詰まってしまっております。。
分かる方いらっしゃいましたらお力添えを頂きたいです。

よろしくお願い致します。

該当のソースコード

html

1<body class="center"> 2 <div class="center" style="width: 500px;"> 3 <select name="test" id="test" onchange="check();" style="width: 50%;"> 4 <option value="" hidden selected disabled>-</option> 5 <option value="1">テスト①</option> 6 <option value="2">テスト②</option> 7 <option value="3">テスト③</option> 8 <option value="4">テスト④</option> 9 <option value="5">テスト⑤</option> 10 </select> 11 <ul class="center" style="width: 100%;"> 12 <li> 13 <a id="next" class="btn disable" href="#">next</a> 14 </li> 15 <li style="margin-top: 20px;"> 16 <a class=" btn" href="#">back</a> 17 </li> 18 </ul> 19 </div> 20</body>

css

1.btn{ 2 list-style: none; 3 padding: 5px 15px; 4 border-radius: 5px; 5 display: inline; 6 vertical-align: middle; 7 text-align: center; 8 border: 1px solid #eee; 9 color: #069; 10 background-color: #fff; 11} 12 13li{ 14 list-style: none; 15} 16 17a{ 18 text-decoration: none; 19} 20 21.center{ 22 display: flex; 23 justify-content: center; 24 align-items: center; 25 flex-direction: column; 26} 27 28.disable{ 29 cursor: default; 30 background-color: #fff; 31 color: #eee; 32 border: 1px solid #eee; 33}

js

1function check() { 2 let checkon = true; 3 4 let c_test = document.getElementById("test").value; 5 let next = document.getElementById("next"); 6 7 console.log(c_test); 8 if (c_test === "2") { 9 checkon = false; 10 } else { 11 checkon = true; 12 } 13 14 if (checkon == true) { 15 next.className = "btn"; 16 } else if (checkon == false) { 17 next.className = "btn disable"; 18 } 19} 20

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

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

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

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

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

t-n

2022/08/18 10:08

> value="2"の箇所をvalue="2" || "4"と変更したら実現できるだろうと試してみましたが、全て非活性となってしまいます。 value="2"はhtml側に記載されていますが、htmlを変更した認識であっていますでしょうか。 そうではなくて、js側のif文の条件を変えたのであれば、変えたあとの条件(ソースコード)を正しく記載いただけると回答しやすくなると思います。
guest

回答1

0

ベストアンサー

value="2" || "4"は「value="2" 」または「"4"」ですから常にtrueですね

javascript

1["2","4"].includes(value)

投稿2022/08/18 09:41

yambejp

総合スコア114784

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問