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

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

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

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

Q&A

解決済

1回答

595閲覧

チェックボックスにチェックを入れてからjsを動かしたい

neginattofan

総合スコア66

JavaScript

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

0グッド

0クリップ

投稿2019/07/09 13:23

チェックボックスにチェックを入れることで、いろいろな動作をjsでつけたいのですが、うまくいきません。なにが原因でしょうか?よろしくお願いします。

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <link rel="stylesheet" href="css/styles.css"> </head> <body> <div id="box" class="unchecked"> <input type="checkbox" id="checkbox" >入力内容に間違いがないことを確認しました。 </div> <script src="js/main.js"></script> </body> </html>
(function() { var isChecked = document.getElementById('checkbox').checked; var checkbox = document.getElementById('checkbox'); var box = document.getElementById('box'); var checked = document.getElementsByClassName('checked'); var unchecked = document.getElementsByClassName('unchecked'); checkbox.addEventListener('click', function() { if (isChecked == true) { box.classList.add('checked'); box.classList.remove('unchecked'); } (isChecked == false) { box.classList.remove('checked'); box.classList.add('unchecked'); } }); })();
#box { background: #F2C879; padding: 5px; border-radius: 10px; width: 350px; text-align: center; margin: 10px auto; } .unchecked { border: red solid 2px; color: #666666; } .checked { border: #E87D0D solid 2px; color: black; }

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

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

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

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

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

guest

回答1

0

ベストアンサー

変数isCheckedの値が初期値から変わらないので分岐しても同じ結果になります。
また、分岐部分でelse else if が書かれていないのでそもそも分岐しません。

【if...else - JavaScript | MDN】
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/if...else

投稿2019/07/09 14:04

kei344

総合スコア69364

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

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

neginattofan

2019/07/09 14:40

ありがとうございます。else if は確かに忘れていました。 isCheckedの値が変わっていないから、というのが原因とのことですが、 https://www.sejuku.net/blog/25060#onChange-4 こちらのサイトの「チェックボックスでのonChange」の実用例として、同じようにチェックボックスのcheckedを使ってjsを使っているのですが、私のコードがうまくいかないのはなぜなのでしょうか?
kei344

2019/07/09 15:11

そのサイトの例では「onChangeの時に」チェックボックスの値を毎回確認しています。neginattofan さんのコードではページが表示された初回のみチェックボックスの値を確認しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問