• 締切済み

未選択のチェック方法を教えて下さい。

内容確認のページに行く前に各項目の未入力・未選択チェックをしたいのです。 テキストフィールド(名前)の未入力チェックはなんとかできましたが、ラジオボタン・ セレクトメニュー・チェックボックスの未選択チェックプログラムが解からなくて 困ってます。教えてgooに載っている回答などを参考にコピペしたりして 試してみたのですが・・・できませんでした。どなたか教えて下さい。 <SCRIPT language="javascript"><!-- function kakunin(f) {   var prm = new Array();    if (document.fomu.名前.value ==""){    alert ("名前を記入して下さい。");      fomu.名前.focus();    return false;   }   if (f.名前.value) prm[prm.length] = "名前="+escape(f.名前.value); //*****ここでラジオボタンの未選択チェックをしたい。*****  for (var i=0; i<f.性別.length; i++)   if (f.性別[i].checked) prm[prm.length] = "性別="+escape(f.性別[i].value); //*****ここでセレクトメニューの未選択チェックをしたい。*****  if (f.使用OS.value) prm[prm.length] = "使用OS="+f.使用OS.options[f.使用OS.selectedIndex].value; //*****ここでチェックボックスの未選択チェックをしたい。*****  for (var i=0; i<f.おまけ.length; i++)   if (f.おまけ[i].checked) prm[prm.length] = "おまけ="+escape(f.おまけ[i].value); location.href = "@@@@@.html?"+prm.join('&'); return false; } //--></SCRIPT>

みんなの回答

noname#8153
noname#8153
回答No.1

試しに作ってみました。参考にしてみてください。 セレクトボックスの1番目の項目には、未選択時を検出するために"----"を入れてあります。 function kakunin(f) {  if(f.S1.selectedIndex == 0)  {   alert("セレクトボックスエラー");   return;  }  if(f.C1.checked==false && f.C2.checked==false)  {   alert("チェックボックスエラー");   return;  }  if(f.R1[0].checked == false && f.R1[1].checked ==false)  {   alert("ラジオボタンエラー");   return;  } } ----以下 フォーム部分 <form name="test"> <SELECT NAME="S1"> <OPTION>---- <OPTION>AAAA <OPTION>BBBB <OPTION>CCCC </SELECT><br><br> <INPUT TYPE="checkbox" NAME="C1" VALUE="AAA">AAA <INPUT TYPE="checkbox" NAME="C2" VALUE="BBB">BBB <br><br> <INPUT TYPE="radio" NAME="R1" VALUE="AAA">AAA <INPUT TYPE="radio" NAME="R1" VALUE="BBB">BBB <br><br> <INPUT TYPE="button" VALUE="OK" onClick="kakunin(test)"> </form>

konkon7
質問者

お礼

hena-chocoさん、ありがとうございます。頂いたソース参考にさせてもらいます。 自分でも、あれこれとやってるうちに形になってきました。 また、いきずまったら質問しますので、その時はよろしくお願い致します。

関連するQ&A

  • チェックボックスの選択チェック

    ラジオボタンの選択チェック、セレクトボタンの選択チェックのあとにチェックボックスの選択チェックをしたいのですが、どのように入れればよいのでしょうか。教えてください。 ↓参考までに↓ function check() { var flag=0; if( document.form1.seibetu.length){ flag=1; var i; for(i=0; i<document.form1.seibetu.length; i++) if(document.form1.seibetu[i].checked)flag=false; } if(flag){ alert('性別が選択されていません'); return false; } if(document.form1.nenrei.value=="")flag=true; if(flag){ alert('年齢が選択されていません'); return false; } if( document.form1.Q1.length){ flag=1; var i; for(var i=0; i<document.form1.Q1.length; i++) if(document.form1.Q1[i].checked)flag=false; if(flag){ alert('Q1が選択されていません'); return false; } else {★★★ここに入れたい★★★   ;} } }

  • ラジオボタンとセレクトボックスの選択チェック

    ラジオボタン、セレクトボタンの選択チェックをしたいのですが 同時にチェックする場合どうすればよいのでしょうか。 失敗策ですが、参考までに↓ function check() { var flag=0; if( document.form1.seibetu.length){ flag=1; var i; for(i=0; i<document.form1.seibetu.length; i++){ if(document.form1.seibetu[i].checked){ flag=0; break; } } } else{ if(!document.form1.seibetu.checked){ flag=1; } } if(flag){ window.alert('性別が選択されていません'); return false; } else{ return true; } if(document.form1.nenrei.options[document.form1.nenrei.selectedIndex]. value==""){ flag=1; } if(flag){ window.alert('年齢が選択されていません'); return false; } else{return true; } }

  • 複数のラジオボタンの選択チェック

    Q1とQ2の2問があり、ラジオボタンで回答を選択するようにしていますが、 ラジオボタンを選択しなかった場合、選択を促すようメッセージを表示させるようJavaScriptで以下のように作成してみましたがうまくいきません。 Q1とQ2の両方を選択しなかった場合、「Q1が選択されていません」とメッセージが表示されますが、Q1だけを選択してQ2を選択しなかった場合はメッセージが表示されません。 いろいろ調べてみたのですが、function checkの使い方に問題があるのでしょうか? function check(){ var flag = 0; if(document.form1.Q1.length) { flag = 1; var i; for(i = 0; i < document.form1.Q1.length; i ++){ if(document.form1.Q1[i].checked){ flag = 0; break; } } } if(flag){ window.alert('Q1が選択されていません'); return false; } else{ return true; } var flag = 0; if(document.form1.Q2.length) { flag = 1; var i; for(i = 0; i < document.form1.Q2.length; i ++){ if(document.form1.Q2[i].checked){ flag = 0; break; } } } if(flag){ window.alert('Q2が選択されていません'); return false; } else{ return true; } }

  • javascriptでチェックボックスの選択状況をチェックする方法につ

    javascriptでチェックボックスの選択状況をチェックする方法について質問です。 チェックボックスを <input type="checkbox" name="chk[]" value="1"> <input type="checkbox" name="chk[]" value="2"> のようにした場合、チェックボックスが1か所以上選択されているかどうかは、 var count = 0; for (var i=0;i<document.myform.elements['chk[]'].length;i++){ if(document.myform.elements['chk[]'][i].checked){ count++; } } if(count==0){ window.alert("チェックしてください!"); } のようにすればチェック可能ですが、inputタグで <input type="checkbox" name="chk1[]" value="1"> <input type="checkbox" name="chk1[]" value="2"> <input type="checkbox" name="chk2[]" value="A"> <input type="checkbox" name="chk2[]" value="B"> のように「name」の配列名が変化する場合はどのようにすればチェック可能でしょうか?

  • フォームの上下に一括チェックボックスを置くには?

    HTML+Javascriptで、選択削除のフォームを作っています。 一覧の上下に一括チェックボックスを置きたいのですが上手く行かないのです。 -------------------- javascript↓ -------------------- //一括チェック用チェックボックス function allcheck() { var count = document.delete.chk.length; var allcheck = document.delete.chk_all.checked; for ( var i=0; i<count; i++) { var check = document.delete.chk[i].checked; if (allcheck == true) { document.delete.chk[i].checked = true; } else { document.delete.chk[i].checked = false; } } } //個別チェック用チェックボックス function check(onjCheck) { if (onjCheck.checked == false) { document.delete.chk_all.checked = false; return; } var count = document.delete.chk.length; for (var i=0; i<count; i++) { if (document.delete.name != "chk_all" && document.delete.chk[i].checked == false) { return; } } document.delete.chk_all.checked = true; } -------------------- HTML↓ -------------------- <form action="" name="delete"> <fieldset> <input type="checkbox" name="chk_all" id="all_head" onclick="allcheck(this)"> <label for="all_head">すべて選択/解除</label> <input type="submit" value="選択した項目を削除"> </fieldset> <fieldset> <input type="checkbox" name="chk" onclick="check(this)"> 項目1 <input type="checkbox" name="chk" onclick="check(this)"> 項目2 <input type="checkbox" name="chk" onclick="check(this)"> 項目3 </fieldset> <fieldset> <input type="checkbox" name="chk_all" id="all_foot" onclick="allcheck(this)"> <label for="all_foot">すべて選択/解除</label> <input type="submit" value="選択した項目を削除"> </fieldset> </form> このように記述しています。 上か下か、片方であれば一括チェックを実現できました。 当方Javascript初心者です。 よろしくご教示願います。

  • フォームPOST後「戻る」時のチェック値の取得

    フォームでPOSTをしたあと、history.backや戻るボタンで戻ったときに、POST時に選択したラジオボタンのcheckedもfalseになってしまうのですが、チェックされているものを取得することはできるのでしょうか。 ■form部分 <form name="form1" method="post" action="..."> <input type="radio" name="radio1" value="1">1<br /> <input type="radio" name="radio1" value="2">2<br /> <input type="radio" name="radio1" value="3">3<br /> </form> ■JavaScript部分 var radio1 = document.form1.radio; for(var i=0;i<radio1.length;i++) { if (radio1[i].checked) { alert(i); } } このようなコードで、選択してPOST後、「戻る」で入力ページ表示時にJavaScriptを実行しても、 radio1[i].checkedは全てfalseになってしまいます。 また選択→POST→戻る→そのままPOSTとすると、選択したvalue値は正しくサーバーに送られます。 「戻る」でのページ表示時に選択したものを取得する方法があれば教示いただけますか。

  • 未選択のプルダウンメニューをアラートしたい

    過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 フォームで未入力の項目に対してアラート&フォーカスされるようにしました。 ここに『住んでいる県』(プルダウン)を追加したいのですがどうしてもうまくいきません。 <script type='text/javascript'> <!-- function check(frm){ var hissu=Array('name','zip','sex'); 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{ for(var j=0, chk=0; j<obj.length; j++){ if(obj[j].checked) chk++; } if(chk==0){   alert(hissu_nm[i]+'は必須です'); return false; } } } return true; } //--> </script> どうかお分かりになる方よろしくお願いいたします。

  • チェックを入れて文字を表示する

    javascript初心者です。あつかましい質問で申し訳ありません。 他のページのサンプルを参考にしてチェックを入れた時はにチェックを入れると文字が表示されるチェックボックスを作成しました。更にチェックはひとつしか出来ないというjavascriptも拾ってきて組み合わせたのですが、チェックを付けてとなりにチェックを入れた時はじめに表示された文字が消えません。教えてください。 <script type="text/javascript"> var before = null; function test(e) { var tgt = e.srcElement ? e.srcElement: e.target; if (before == tgt && tgt.checkd == true) { tgt.checked = true; } else { var chks = document.getElementsByName('chkgroup'); for (var i = 0; i < chks.length; i++) { if (chks[i] != tgt) chks[i].checked = false; } } before = tgt; } <!-- function output(){ var str=""; var chkboxes=document.getElementsByName("chkgroup"); for(var i=0;i<chkboxes.length;i++){ var obj=chkboxes[i]; if (obj.checked){//チェックされていたらstrにvalue属性の文字列を追加する str+=obj.value; } } document.getElementById("result").innerHTML=str; } window.onload=function(){ var chkboxes=document.getElementsByName("chkgroup");//チェックボックス(chkgroup)を配 列で取得 for(var i=0;i<chkboxes.length;i++){//ループでチェックボックス全てにイベントハンドラを 設定 chkboxes[i].onclick=output; } }; //--> </script> <title>sample</title> <body> <form id="SAMPLE" action="#" onclick="test(event);"> <label for="chk1"><input name="chkgroup" id="chk1" type="checkbox" value="0">Item1</label> <label for="chk2"><input name="chkgroup" id="chk2" type="checkbox" value="1">Item2</label> <label for="chk3"><input name="chkgroup" id="chk3" type="checkbox" value="2">Item3</label> </form> <p id="result">ここに表示されます。</p> </body>

  • head内から外部jsにするとスクリプトが動作しません。

    下記の「●htmlのhead内に書かれているスクリプト」を外部jsにしたく、 <script type ="text/javascript"> <!-- の部分と --> </script> 以外の部分をテキストファイルにペーストして外部jsにしたのですが、 上手く動作しません。 この場合、どうやったら外部jsとして動作させることができますでしょうか? どうかご教授下さいますよう、よろしくお願い致します。 フォームタグは以下のようになっています。 <form method="POST" action="●●.cgi" name="f" onSubmit="return check()"> ●htmlのhead内に書かれているスクリプト <script type ="text/javascript"> <!-- function check(){ var errormsg=""; var mailerror=0; if(document.f.name1.value==""){ errormsg+="※お名前が入力されていません\n"; } if(document.f.kana1.value==""){ errormsg+="※フリガナが入力されていません\n"; } if(document.f.postal.value==""){ errormsg+="※郵便番号が入力されていません。\n"; } if(document.f.pref.value==""){ errormsg+="※都道府県が選択されていません。\n"; } if(document.f.adress.value==""){ errormsg+="※住所が入力されていません。\n"; } if(document.f.email.value==""){ errormsg+="※メールアドレスが入力されていません。\n"; mailerror=1; } if(document.f.email2.value==""){ errormsg+="※確認用メールアドレスが入力されていません。\n"; mailerror=1; } if(!mailerror){ if(document.f.email.value != document.f.email2.value){ errormsg+="※メールアドレスに間違いがあります。\n"; } } var mail=document.f.email.value; var c; var zen=false; for(i=0;i<mail.length;i++){ c=mail.charCodeAt(i); if(c >= 65345 && c<=65370){ errormsg+="※メールアドレスに全角文字が含まれています。\nメールアドレスは半角英数字を入力してください。\n"; zen=true; break; } } if(!zen){ var at=mail.indexOf("@"); var dot=mail.lastIndexOf("."); var space=mail.indexOf(" "); var ok=false; if(at != -1 && at != 0 && dot != -1 && dot > at +1 && dot < mail.length -1 && space == -1){ ok=true; } if(!ok){ errormsg+="※メールアドレスが正しくありません。\n"; } } if(document.f.tel.value==""){ errormsg+="※お電話番号が入力されていません。\n"; } if(document.f.haisou.checked==true){ if(document.f.name_rcpt1.value==""){ errormsg+="※お届け先のお名前が入力されていません\n"; } if(document.f.kana_rcpt1.value==""){ errormsg+="※お届け先のフリガナが入力されていません\n"; } if(document.f.postal_rcpt.value==""){ errormsg+="※お届け先の郵便番号が入力されていません。\n"; } if(document.f.pref.selectedIndex == 0){ errormsg+="※お届け先の都道府県が選択されていません。\n"; } if(document.f.adress_rcpt.value==""){ errormsg+="※お届け先の住所が入力されていません。\n"; } if(document.f.tel_rcpt.value==""){ errormsg+="※お届け先の電話番号が入力されていません。\n"; } } var pay_flag=0; var deliver_flag=0; var pay=""; var deliver=""; for(i=0;i<document.f.elements.length;i++){ if(document.f.elements[i].name == "pay"){ pay_flag++; } else if(document.f.elements[i].name == "deliver"){ deliver_flag++; } } if(pay_flag){ if(pay_flag > 1){ for(i=0;i<document.f.pay.length;i++){ if(document.f.pay[i].checked == true){ pay=document.f.pay[i].value; break; } } } else{ if(document.f.pay.checked==true){ pay=document.f.pay.value; } } } if(deliver_flag){ if(deliver_flag > 1){ for(i=0;i<document.f.deliver.length;i++){ if(document.f.deliver[i].checked == true){ deliver=document.f.deliver[i].value; break; } } } else{ if(document.f.deliver.checked==true){ deliver=document.f.pay.value; } } } if(errormsg){ alert(errormsg); return false; } } --> </script>

  • 複数あるチェックボックスの入力チェックするには?

    チェックボックスの入力チェックスクリプトを探しており、下記のようなスクリプトをネット検索で見つけました。 <!-- <script type="text/javascript"> function chNull(msg,obj) { if(!obj) return true; if((obj.type || obj[0].type) == 'checkbox'){ var flag = 0; if(obj.length){ for(var i=0; i<obj.length; i++) { if(obj[i].checked) flag = 1; } } else { if(obj.checked) flag = 1; } if(flag == 0) { alert(msg + 'を選択してください。'); return false; } } return true; } --> </script> <form method="POST" action="■.cgi" onSubmit="return chNull('チェックボックス',a);"> <input type="checkbox" name="a" value="A1" />A1 <input type="checkbox" name="a" value="A2" />A2 </form> 同じnameのチェックボックス群がひとつしかないときはこれで問題ないのですが、 下記のようにnameが複数ある場合にはこのスクリプトのどの部分を変えればよいのでしょうか? <input type="checkbox" name="a" value="A1" />A1 <input type="checkbox" name="a" value="A2" />A2 <input type="checkbox" name="b" value="B1" />B1 <input type="checkbox" name="b" value="B2" />B2 <input type="checkbox" name="c" value="C1" />C1 <input type="checkbox" name="c" value="C2" />C2 できればこのスクリプトをベースとして使用したいと思っています。どなたかお分かりの方がいらっしゃいましたらお教え下さいませ。 よろしくお願い致します。

専門家に質問してみよう