• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:未選択のプルダウンメニューをアラートしたい)

未選択のプルダウンメニューでアラートを表示する方法

このQ&Aのポイント
  • 未選択のプルダウンメニューをアラートする方法について質問です。
  • フォームで未入力の項目に対してアラート&フォーカスされるようにしましたが、住んでいる県のプルダウンメニューを追加することができません。
  • 解決策をご教授いただける方にお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

radioボタンであることを判断するのと プルダウン(selectタグ)であることの判断を 追加しました。 チェックボックスも判断するのであれば type=='checkbox'も必要になります。 <script type='text/javascript'> <!-- function check(frm){ var hissu=Array('name','zip','sex', 'aaa'); var hissu_nm = Array('名前','郵便番号','性別', 'あああ'); var len=hissu.length; for(i=0; i<len; i++){ var obj=frm.elements[hissu[i]]; if(obj.type=='text' || obj.type=='textarea'){ if(obj.value==''){ alert(hissu_nm[i]+'は必須です'); frm.elements[hissu[i]].focus(); return false; } }else if(obj[0].type=='radio'){ for(var j=0, chk=0; j<obj.length; j++){ if(obj[j].checked) chk++; } if(chk==0){ alert(hissu_nm[i]+'は必須です'); obj[0].focus(); return false; } }else if(obj.tagName=='SELECT') { if(obj.value == '') { alert(hissu_nm[i]+'は必須です'); obj.focus(); return false; } } } return true; } //--> </script> <form action="" method=post onSubmit="return check(this);"> 名前<input name="name" type="text" id="name"> <br> 郵便番号<input name="zip" type="text" id="zip"> <br> <input name="sex" type="radio" value="radiobutton"> 男  <input name="sex" type="radio" value="radiobutton"> 女 <br> あああ <select name="aaa"> <option value="">--選択してください--</option> <option value="aaa">aaa</option> <option value="bbb">bbb</option> <option value="ccc">ccc</option> </select> <br> <input type=submit value="送信"> </form>

yuzu007
質問者

お礼

ありがとうございます、ありがとうございます! 完璧に作動いたしました!! 何日も悩んでいたのにこんなに早く解決することができたなんて…!なんとお礼を言っていいやらわかりません。 本当にありがとうございました!

その他の回答 (3)

回答No.4

VCATさん、ご指摘ありがとうございます。 optionを指定してしまっていますね。 動作確認をしていませんでした。 すみません。

  • VCAT
  • ベストアンサー率20% (16/79)
回答No.2

No.2さんの > for(var j=0, chk=0; j<obj.length; j++){ > if(obj[j].checked) chk++; > } > if(chk==0){ >   alert(hissu_nm[i]+'は必須です'); > return false; > } 一番上ということでしたら if(obj[j].selectedIndex == 0) { alert(hissu_nm[i]+'は必須です'); return false; } ですが、optionの場合は警告がちがいますね。 不可視の警告になります。

yuzu007
質問者

お礼

わざわざ見ていただいてありがとうございました。

回答No.1

プルダウンの未選択とはどういったときでしょうか。 プルダウンの場合は常にどれかが選択された状態になっています。 一番上(selectedIndexが0)の場合は未選択ということでしょうか。 それともvalueが空(value="")のときが未選択でしょうか。 > for(var j=0, chk=0; j<obj.length; j++){ > if(obj[j].checked) chk++; > } > if(chk==0){ >   alert(hissu_nm[i]+'は必須です'); > return false; > } 一番上ということでしたら if(obj[j].selectedIndex == 0) { alert(hissu_nm[i]+'は必須です'); return false; } valueが空ということでしたら if(obj[j].value == '') { alert(hissu_nm[i]+'は必須です'); return false; }

yuzu007
質問者

補足

回答どうもありがとうございました! すみません、<option value="">の場合でした。 字数制限で書けなかったのですが、この後 <form action="" method=post onSubmit="return check(this);"> 名前<input name="name" type="text" id="name"> <br> 郵便番号<input name="zip" type="text" id="zip"> <br> <input name="sex" type="radio" value="radiobutton"> 男  <input name="sex" type="radio" value="radiobutton"> 女 <br> <input type=submit value="送信"> </form> と続き、最初のスクリプトはテキストエリアとラジオボタンに対するチェックでした。 ここで今回お教えいただいたものを追加すると言うことは、 }else{ からどう記入すればよろしいのでしょうか。 もしよろしければお教え願えないでしょうか。

関連するQ&A