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

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

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

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

HTML

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

Q&A

解決済

3回答

2063閲覧

片方のみ処理されてしまう

a-_.

総合スコア133

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2016/09/05 06:40

編集2016/09/06 02:42

・チェックボックス未チェックのままsubmitボタンを押下した場合はエラー(javascript:alert)を表示し、投稿を中止
という条件をJavaScriptのみで処理したいんですが、アラート表示の条件がうまく処理できません
下記コードで処理を行うとラジオボタンのID属性を代入した変数up・deの内deのみ処理されてしまいます
変数upも同様に行いたいのでelse ifをもう1つ追加してupとdeを分けて処理してみても改善しませんでした

何か抜けている処理があるんでしょうか

JavaScript

1//up又はdeのラジオボタン選択でtrue 2else if (up.checked == true || de.checked == true) { 3 4//チェックボックスのname属性取得 5var ca = document.getElementsByName('chkid[]'); 6 7//変数boxは配列 8var box = []; 9 10//変数caは配列なので、ループの中で 一つずつチェックされているか判定 11for(var cb = 0; cb < ca.length; cb++) { 12 13 //チェックされていれば、変数boxを押した時に変数cbをカウントした変数caを代入 14 if (ca[cb].checked) { 15 box.push(ca[cb]); 16 } 17} 18 //1つもチェックされていない時 19 if (box == 0) { 20 window.alert("ERROR5"); 21 22 //falseで処理を返す 23 return false; 24 } 25}

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

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

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

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

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

kunai

2016/09/05 06:50

なぜ同じ内容で何度も質問を立て直されているのでしょうか。 回答する側としては、今まで行われた回答や質問の中で、ここに記載のない有用な情報があったりもして、余計な質問等もすることなく回答出来るようになると思うのですが。。
NatsumiOki

2016/09/05 06:51

コードの形式がHTMLになっていますが、中身がJavaScriptなのでハイライトがおかしくなっちゃってます。JavaScriptに変えたほうが良いですよ。
jm1156

2016/09/05 07:09

else if (up.checked == true || de.checked == true) { ↑の行のまえのif文はどうなってますか? 以前のコードのままなら、最初のif文にup.checkedをチェックするコードが はいっていたはずなので、このコードにはたどり着かないはずです。 あと↓の質問、 https://teratail.com/questions/46751 Kosuke_Shibuyaさんのコードはみましたか? ちゃんと内容を理解して「解決」にしましたか?
guest

回答3

0

投稿2016/09/05 10:47

attercop

総合スコア246

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

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

0

javascript

1if (box == 0) {

box は配列なのに == 0 で比較するのがおかしい。

投稿2016/09/05 06:54

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

この手の処理は1個でもチェックされていればいいので
フラグで処理するのが妥当。
checkedが見つかったらあとの処理は不要なのでbreakすること

var ca = document.getElementsByName('chkid[]'); var ca_flg=false; for(var i = 0; i < ca.length; i++) { if (ca[i].checked) { ca_flg=true; break; } } if (ca_flg) { alert("ERROR5"); return false; }

投稿2016/09/05 07:52

yambejp

総合スコア114757

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問