• ベストアンサー

JAVAスクリプトでのFORM入力チェックの方法

JAVAスクリプトでのFORM入力チェックの方法を教えてください。 ネットでいろいろ探してはめ込んだのですが、動作するプログラムが下記のしかありませんでした。 ラジオボタンの入力チェックとプルダウンの入力チェックを同時にしたいのですがよくわかりません。 今の状態ではラジオボタンをチェックしても未入力のアラートが出てしまいます。 あとこれにプルダウンの入力チェックをつけたいのですが… すいませんがどなたか教えてください。よろしくお願いします。 function Form_Validator(theForm) { var flag=false; var i; for(i=0; i<theForm.OPT-00-06.length; i++){ if (theForm.OPT-00-06[i].checked){ flag = true; break; } } if(!flag){ alert("\"OPT-00-06\" にチェックしてください。"); return (false); } if(confirm("入力もれはありません。")){ return (true); }else{ return (false); } <form name="form1" method="POST" action="~cgi?" onsubmit="return Form_Validator(this);"> ・ ・ <input type="radio" name="OPT-00-06" value="A"> <input type="radio" name="OPT-00-06" value="B"> ・ ・ <select name="OPT-00-07"> <option value="">選択してください</option> <option value="80">80</option> <option value="81">81</option> ・ ・ ・ <select name="OPT-00-08"> <option value="">選択してください</option> <option value="35">35cm</option> <option value="36">36cm</option> ・ ・ ・ <input type="submit" value="カートに入れる" name="submit">   <input type="reset" value="内容をクリア" name="reset"> </div> </form>

  • zyura
  • お礼率14% (2/14)

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.8

汎用性がないのが気になります。 いかのようにしてみてはどうでしょうか? <script language=javascript> function Form_Validator(f){ var r=new Object; //radioをチェック for(var i=0;i<f.length;i++){ if(f[i].type=="radio"){ if(r[f[i].name]==undefined) r[f[i].name]=false; if(r[f[i].name]==false && f[i].checked) r[f[i].name]=true; } } for(var i in r){ if(r[i]==false){ alert("\""+i+"\"にチェックしてください。"); f[i][0].focus(); return false; } } //selectをチェック for(var i=0;i<f.length;i++){ if(f[i].type=="select-one" && f[i].value==""){ alert("\""+f[i].name+"\"を選択してください。"); f[i].focus(); return false; } } return confirm("入力もれはありません。"); } </script> <form method="POST" action="~cgi" onsubmit="return Form_Validator(this)"> OPT-00-05: <input type="radio" name="OPT-00-05" value="A">5-A <input type="radio" name="OPT-00-05" value="B">5-B <hr> OPT-00-06: <input type="radio" name="OPT-00-06" value="A">6-A <input type="radio" name="OPT-00-06" value="B">6-B <hr> OPT-00-07:<select name="OPT-00-07"> <option value="">選択してください</option> <option value="80">80</option> <option value="81">81</option> </select> <hr> OPT-00-08:<select name="OPT-00-08"> <option value="">選択してください</option> <option value="35">35cm</option> <option value="36">36cm</option> </select> <hr> <input type="submit" value="カートに入れる" name="go"> <input type="reset" value="内容をクリア"> </div> </form> ちなみにformにnameをつけて管理するのは非推奨。 submitボタンにsubmitと言う名前をつけたりresetボタンにresetという ボタンをつけるのは誤操作につながるためやめましょう。 ねんのため、#7の対処策は form0["OPT-00-07"]とするかform0.elements["OPT-00-07"]です。

zyura
質問者

補足

毎回親切な対応をしていただき本当にありがとうございます。 またさらなる問題が出てきました。 プルダウンをAとB用意して、Aは無料でBは有料という設定にしています。AとBの中からひとつしかモノを選べない条件で、前回教えてもらったスクリプトを組み込んでいったわけです。 それで今回はBのプルダウンの前にチェックボタンをつけて、チェックすれば有料のプルダウンが有効、チェックしなければ無効。初期状態はチェックしていない無効状態にしています。 それでまたうまく動いてくれません。おそらく条件式の部分だとは思うのですが。お手数ですがまたアドバイスをお願いい致します。 <script type='text/javascript'> <!-- function Form_Validator() { num=0; flag=0; for(i=100;i<102;i++) { if(document.form1.elements[i].checked) {flag = 1;}} if(flag=="0") { alert("方法を選択して下さい"); } else { num += 1; } flag=0; if(document.form1.elements[OPT-00-07].value == "" && document.form1.elements[CNT-06].value == "1") { flag=1; } if(document.form1.elements[OPT-00-07].value != "" && (document.form1.elements[CNT-06].value != "1" && document.form1.elements[OPT-06-01].value == "") { flag=1; } if(document.form1.elements[OPT-00-07].value != "" && (document.form1.elements[CNT-06].value != "1" && document.form1.elements[OPT-06-01105].value != "")) { flag=1; } if(document.form1.elements[CNT-06].value != "1" && document.form1.elements[OPT-06-01].value == "") { flag=1; } if(flag=="1") { alert("どちらかから選択してください"); } else { num += 1; } if(num == "2") { form1.submit(); } } function fchk6(obj) { var frm=obj.form; var len=frm.elements.length; /* フォームの要素数 */ if(obj.checked==true){ /* チェックボックスが選択されている場合、   プルダウンを有効化(disabled=false) */ frm.elements['OPT-06-01'].disabled=false; }else{ /* チェックボックスが選択されていない場合、   プルダウンを無効化(disabled=true) */ frm.elements['OPT-06-01'].selectedIndex=0; /* プルダウン初期化 */ frm.elements['OPT-06-01'].disabled=true; } } <form action="" method="post" name="form1"> <select name="OPT-00-07">    /*無料分の選択*/ <option value="">selectA</option> <option value="select0">0</option> <option value="select1">1</option> </select> <input type="checkbox" name="CNT-06" onClick='fchk6(this)' value="1" style="visibility: "> <select name="OPT-06-01">     /*有料分の選択*/ <option value="">selectB</option> <option value="select0">0</option> <option value="select1">1</option> </select>

その他の回答 (7)

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.7

こんにちは OPT-00-07の『 - 』をそのまま『マイナス』として認識されてる可能性があるようですね(^^) 使うなら『 _ (shift + ろ)』を使用してください 別のnameに変えるとうまくいきました

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.6

こんにちは 条件があるのであればそれにしたがってif文を組み立てていけばいいです A,Bどちらも選択していなければエラー、 A,B両方選択していればエラー、 それ以外ならO.K. という感じで <script language="javascript"> <!-- function check() { flag = 0; if(document.form1.f1.value == "" && document.form1.f2.value == "") { flag = 1; } if(document.form1.f1.value != "" && document.form1.f2.value != "") { flag = 1; } if(flag == "1") { alert("A、Bどちらかから選択してください"); } } //--> </script> <form action="" method="post" name="form1"> <select name="f1"> <option value="">selectA</option> <option value="select0">0</option> <option value="select1">1</option> </select> <select name="f2"> <option value="">selectB</option> <option value="select0">0</option> <option value="select1">1</option> </select> <input type="button" value="cart_in" onclick="check()"> </form> 『 && 』は『かつ(and)』、『 || 』は『または(or)』になり、 『 == 』は『イコール』、『 != 』は『ノット イコール』になります

zyura
質問者

補足

出来の悪い人間ですいません。 もう少しお付き合いください。 前回教えていただいたプログラムと組み合わせたらエラーが出ます。 ラジオのチェックはプルダウンの条件を付け加えるまでは普通に動いておりました。とりあえずフォームでのラジオボタン部品を除いた部分を記述します。すいませんがアドバイスをお願いいたします。 function Form_Validator() { num=0; flag=0; for(i=100;i<102;i++) { if(document.form1.elements[i].checked) {flag = 1;}} if(flag=="0") { alert("方法を選択して下さい"); } else { num += 1; } flag = 0; if(document.form1.OPT-00-07.value == "" && document.form1.OPT-06-01.value == "") { flag = 1; } if(document.form1.OPT-00-07.value != "" && document.form1.OPT-06-01.value != "") { flag = 1; } if(flag == "1") { alert("Aのどちらかから選択してください"); } else { num += 1; } flag = 0; if(document.form1.OPT-00-08.value == "" && document.form1.OPT-07-01.value == "") { flag = 1; } if(document.form1.OPT-00-08.value != "" && document.form1.OPT-07-01.value != "") { flag = 1; } if(flag == "1") { alert("Bのどちらかから選択してください"); } else { num += 1; } if(num == "3") { form1.submit(); } } //--> </script> <form action="" method="post" name="form1"> <select name="OPT-00-07"> <option value="">selectA</option> <option value="select0">0</option> <option value="select1">1</option> </select> <select name="OPT-06-01"> <option value="">selectB</option> <option value="select0">0</option> <option value="select1">1</option> </select> <select name="OPT-00-08"> <option value="">selectA</option> <option value="select0">0</option> <option value="select1">1</option> </select> <select name="OPT-07-01"> <option value="">selectB</option> <option value="select0">0</option> <option value="select1">1</option> </select> <input type="button" value="カートに入れる" onclick="Form_Validator();"> </form>

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.5

こんにちは firefoxで試したところうまくいかなかったのでちょっと修正(--;) <form name="forms">にしていたら『forms』だとエラーになりました 別のnameにしてください forms.submit(); このままではsubmitされませんでしたので document.(フォーム名).submit(); に変更してください

zyura
質問者

補足

ありがとうございました。 なんとか出来ました。本当にありがとうございました。 出来ればもう一つだけ教えてもらいたいことがあるのですが… A、B2つのプルダウンをグループにしてチェックしたいのですが可能ですか? たとえばA、Bともに初期値は「選択してください」となっており、Aだけ、もしくはBだけ選択すればスルー、両方選択、もしくは両方とも選択していない場合はエラーという形にしたいのです。 よろしければ教えていただけませんでしょうか? よろしくお願いいたします。

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.4

こんにちは if(num=="110") { forms.submit(); } num="110" ・・・110個もチェック項目がおありで? <input type="hidden">などでvalue値固定のものであればチェックする必要はありませんよ? numの個数はチェック項目数の数と同じになると思います チェックごとに if( ) { alert(""); } else{num += 1; } としているならば forms.submit(); これは(フォーム名).submit();となってますので <form name="***" action="###.cgi" method="post">のnameを使って ***.submit(); となります このどちらかが違うと何も反応しないかjavascriptエラーになります (スクリプトエラー表示する設定にしていないならどちらも何も反応してないように感じると思います) 上記質問のままでしたら form1.subit(); になると思うのですがこれでsubmit出来ないのであればnumの値が違うのだと思います

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.3

こんにちは <input type="hidden">の場合もelementsの数は増えていきます elementsの番号は<input>ごとに増えていき<select>のときだけ<select></select>で1つのelementsとみなします もしもっと簡単に(個別に)するのであれば //text,passeord if(document.forms.f1.value == "") { alert("id入力してください"); } else { num += 1; } //radioボタン flag=0; for(i=0;i<2;i++) { if(document.forms.f3[i].checked) {flag = 1;}} if(flag=="0") { alert("ラジオ項目を選択して下さい"); } else { num += 1; } //selectボタン if(document.forms.f4.value == "") { alert("セレクト項目を選択してください"); } else { num +=1; } という風にも出来ます text,password,select,textereaはデフォルトがvalue=""なのでdocument.(フレーム名).(input名).valueで判別できるのですが radio,checkboxの場合にはちょっと使いにくいかも radioの場合は<input type="radio" value="**">とすでにvalue値が入っていますし checkboxの場合には<input>ごとにnameが違うから・・・ for(i=0;i<2;i++) { if(document.forms.f3[i].checked) { flag=1; }} プログラムの個数を調べる時は『1』からではなく『0』からになりますのでスタートが『i=0』となってradioの個数が2つなので(番号は『0,1』となり)終わりが『i<2』となります『i++』はループごとに1足していくということ 『i』は別にiでなくても『j』でも『n』でも自分の分かりやすいものなら何でもいいです 上のを別の書き方すると if(document.forms.f3[0].checked) { falg=1; } if(document.forms.f3[1].checked) { flag=1; } となります

zyura
質問者

補足

アドバイスありがとうございました。 おかげでチェック機能は動きました。 ただ残り一箇所submit()が動きません。 最後ボタンを押したときに何も反応しないのです。 教えていただいたjavascript内の if(num=="110") { forms.submit(); } もしくは <input type="button" value="カートに入れる" onclick="Form_Validator();"> どちらかをわかりやすいかたちに変更したらいけると 思うのですが…何度もすいませんが教えてください。 よろしくお願いいたします。

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.2

こんにちは 色々な種類があるときにはelementsを使う方法もあります <script language="javascript"> <!-- function check() { num = 0; //textの場合 if(document.forms.elements[0].value=="") { alert("id入力してください"); } else { num += 1; } //passwordの場合 if(document.forms.elements[1].value=="") { alert("passwordを入力してください"); } else { num += 1; } //radioの場合 flag=0; for(i=2;i<4;i++) { if(document.forms.elements[i].checked) {flag = 1;}} if(flag=="0") { alert("ラジオ項目を選択して下さい"); } else { num += 1; } //selectの場合 flag=0; if(document.forms.elements[4].selectedIndex) {flag=1;} if(flag=="0") { alert("セレクト項目を選択してください"); } else { num +=1; } //checkboxの場合 flag=0; for(i=5;i<7;i++) { if(document.forms.elements[i].checked) { flag=1; }} if(flag=="0") { alert("チェックボックスを選択してください"); } else { num += 1; } if(num=="5") { forms.submit(); } } //--> </script> <form action="test.cgi" method="post" name="forms"> I D:<input type="text" name="f1"> PASS:<input type="password" name="f2"> <input type="radio" name="f3" value="radio0">0 <input type="radio" name="f3" value="radio1">1 <select name="f4"> <option value="">select</option> <option value="select0">0</option> <option value="select1">1</option> </select> <input type="checkbox" value="check0" name="f5">0 <input type="checkbox" value="check1" name="f6">1 <input type="button" value="cart_in" onclick="check()"> <input type="reset" value="クリア"> </form> ですので今回の場合だと <script language="javascript"> <!-- function Form_Validator() { num=0; flag=0; for(i=0;i<2;i++) { if(document.form1.elements[i].checked) {flag = 1;}} if(flag=="0") { alert("タイプを選択して下さい"); } else { num += 1; } flag=0; if(document.form1.elements[2].selectedIndex) { flag=1; } if(flag == "0") { alert("番号を選択してください"); } else { num += 1; } flag=0; if(document.form1.elements[3].selectedIndex) {flag=1; } if(flag == "0") { alert("サイズを選択してください"); } else { num += 1; } if(num == "3") { form1.submit(); } } //--> </script> <form name="form1" method="POST" action="~cgi?"> ・ ・ <input type="radio" name="OPT-00-06" value="A"> <input type="radio" name="OPT-00-06" value="B"> ・ ・ <select name="OPT-00-07"> <option value="">選択してください</option> <option value="80">80</option> <option value="81">81</option> </select> ・ ・ ・ <select name="OPT-00-08"> <option value="">選択してください</option> <option value="35">35cm</option> <option value="36">36cm</option> </select> ・ ・ ・ <input type="button" value="カートに入れる" onclick="Form_Validator();">   <input type="reset" value="内容をクリア" name="reset"> </form> という感じになると思います

zyura
質問者

補足

ご丁寧な回答ありがとうございました。 実際試してはいるのですが、レベルが高すぎていまいちelementsがよくわかりません。 実はこのプログラム <input type="hidden" name="ITM-01" value="order_op01"> などの隠しボタンが多々含まれており、formの部品も10項目以上存在しております。この場合、elementsを使い時は一つ一つ順番を数えていかなければいけないのでしょか? あとradio、checkboxで使われているfor文のiとelementsのiの意味がわかりません。もしよろしければ教えてください。 よろしくお願いいたします。

回答No.1

こんばんは! >var flag=false; >if(!flag){ >alert("\"OPT-00-06\" にチェックしてください。"); >return (false); >} flagにfalseが入っているので!flagではtureになり、 アラートは必ずでてしまいます。 なので、 var flag = document.forms[0].OPT-00-06.value; if (flag == null) {  alert("\"OPT-00-06\" にチェックしてください。");  return (false); } にしましょう! ラジオボタンがチェックされていない場合にnullが入るのか""が 入るのか・・・確認していないので、実際試してみてください! あとは、プルダウンも同じで、 var select01 = document.forms[0].OPT-00-07.value; var select02 = document.forms[0].OPT-00-08.value; if (select01 == null) { //処理 } if (select02 == null) { //処理 } でうまくいくと思います! また、document.forms[0].コントロール名は 色々と記述の仕方があるみたいなので、上記で取得できない場合は 調べて試してください! document.formで沢山ヒットします。 それでは、うまくいくといいですね!

zyura
質問者

補足

ご丁寧な回答ありがとうございました。 しかしこのプログラムに変えたとたん今度はアラートすら 出なくなり、スルーしてしまいます。 ちなみにdocument.formもNULLの件はすべて試しました。 javaスクリプトは奥が深すぎますね。

関連するQ&A

  • checkbox の入力チェックのやり方について

    お世話になります。 フォームにて、 javascriptで、入力チェックをおこないたいと思っています。 チェックボックスについては、どれか選択が一つでもなければ、アラートで、文字を出したいと思いますが、うまくできません。 チェックボックスの入力確認の方法を教えてください。 よろしくお願いいたします。 現在作りかけのソースは、下記の通りです。 <html> <head><title>-</title></head> <body> <form method="post" action="" onsubmit="return form_Validator(this)"> <input type="text" name="a1" size="15" maxlength="12"> <BR> <input type="checkbox" name="a1001" value="1"> <input type="checkbox" name="a1002" value="1"> <input type="submit" value="登録" name="submit"> </form> <script Language="JavaScript"> <!-- function form_Validator(doc) { if ( doc.a1.value == "" ) { alert( "BAD" ); return false; } /* a1001かa1002のチェックボックスのチェックがなければアラート----*/ return (true); } //--> </script> </body> </html>

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

    チェックボックスの入力チェックスクリプトを探しており、下記のようなスクリプトをネット検索で見つけました。 <!-- <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 できればこのスクリプトをベースとして使用したいと思っています。どなたかお分かりの方がいらっしゃいましたらお教え下さいませ。 よろしくお願い致します。

  • 複数フォームに同じnameがある場合の入力チェック

    うまく入力チェックが動作せず、行き詰まっており困っております。 アドバイスを頂ければ助かります。ソースは以下です。 function chkform(frm){ var mst=Array("dep","plan"); var mst_nm = Array("出発地","プラン"); var len=mst.length; for(i=0; i<len; i++){ var obj=frm.elements[mst[i]]; if(obj.type=="text" || obj.type=="textarea"){ if(obj.value==""){ alert(mst_nm[i]+"は必須入力項目です"); frm.elements[mst[i]].focus(); return false; } }else{ for(var j=0, chk=0; j<obj.length; j++){ if(obj[j].checked) chk++; } if(chk==0){ alert(mst_nm[i]+"は必須入力項目です"); return false; } } } return true; } <form name="order1" onsubmit="return chkform(this)"> <input type="radio" name="dep" value="osa" />大阪   <input type="radio" name="dep" value="tky">東京 <br /> <select name="plan"> <option value="">▼プランを選択▼</option> <option value="biz">出張</option> <option value="tvl">旅行</option> <option value="day">日帰り</option> </select> <br /> <input type="submit" name="btn1" value="確認"> </form> <form name="order2" onsubmit="return chkform(this)"> <input type="radio" name="dep" value="osa" />大阪   <input type="radio" name="dep" value="tky">東京 <br /> <select name="plan"> <option value="">▼プランを選択▼</option> <option value="biz">出張</option> <option value="tvl">旅行</option> <option value="day">日帰り</option> </select> <br /> <input type="submit" name="btn2" value="確認"> </form>

  • チェックボックスの未入力チェック

    ざっとですけれども <form action="**" name="myform" onsubmit="return Check()" method=post> <input type="checkbox" name="Erasedata" id="Erasedata" value="1" > <input type="checkbox" name="Erasedata" id="Erasedata" value="2" > ・・・ <input type="checkbox" name="Erasedata" id="Erasedata" value="5" > <input type="submit" value="選択されたものを削除する"> このようなチェックボックスがあったとして function Check() { for (i=0;i<document.myform.length;i++)  {   if(document.myform.Erasedata[i].checked==true) {return true;}  } alert("どこかにチェックを入れて下さい "); return false; } といった感じで未入力チェックをしています。 チェックボックスが複数の場合はうまく動くのですが、チェックボックスがひとつだとうまくいきません。スクリプトで何か問題があるようでしたらご指摘お願いできませんでしょうか。よろしくお願いいたします。

  • フォームの入力チェックをすると既に入力した項目が消える

    実は過去のQ&Aの中でご紹介されていた ホームページを拝見させて頂いたのですが、 残念ながら私の応用力が足りず、 上手く作ることが出来ません。 下記のように書いてみたのですが、 これでは未入力のメッセージにOKを押すと その前に入力したものが全て消えてしまいます。 何方か、正しい書き方をご教示下さいますよう 宜しくお願い申し上げます。 <script language="JavaScript"> <!-- function checkForm(){ if(document.form1.chk1.checked == false && document.form1.chk2.checked == false) { alert('チェックなし'); return false; } { flag = 0; for ( i = 0 ; i < document.form1.radiobtn.length ; i++){ if (document.form1.radiobtn[i].checked){ flag = 1; } } if (!flag){ alert('ラジオなし'); return false; } if(document.form1.sel.selectedIndex == 0){ alert('メニューなし'); document.form1.sel.focus(); return false; } if(document.form1.bun.value == ""){ alert('文字なし'); document.form1.bun.focus(); return false; } } return true; } //--> </script>

  • フォームの入力チェックについて

    下記のプログラムで、チェックボックスや、ラジオボタンの 入力チェックを行うと、 値自体は、$_POST['radio_check']にて取得できるのですが、Javascriptコンソールにて objElm has no propertiesと 出てしまいます。 外部ファイル部分 function requiredRadioCheck(objElm,strErr) { flag=false; for(i=0;i<objElm.length;i++){ if(objElm[i].checked){flag=true;} } if(!flag){ return strErr + "が入力されていません。 \r"; }else{ return ""; } } html部分 function chk(){ strErr=""; strErr+=requiredCheck(strErr+=requiredRadioCheck(document.Form.radio_check.value,"ラジオボタン"); strErr+=numberTypeCheck if(strErr==""){ return true; }else{ window.alert(strErr); return false; } }

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

    ラジオボタンの選択チェック、セレクトボタンの選択チェックのあとにチェックボックスの選択チェックをしたいのですが、どのように入れればよいのでしょうか。教えてください。 ↓参考までに↓ 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 {★★★ここに入れたい★★★   ;} } }

  • フォームのチェックボックスの入力チェック JavaScriptの添削依

    フォームのチェックボックスの入力チェック JavaScriptの添削依頼 フォーム制作しています。 複数選択可能なチェックボックスの入力チェックを行いたいのですが、 動かず困っています。 JavaScriptの添削をお願いします。 他のチェック項目との兼ね合いもあり、 JavaScriptはform.jsに記載したいこと、 チェックボックスが未選択の場合は、flag に 1 を入れること、 チェックボックスの数が多いため、それぞれ違う name を振る方法は避けたいこと、 が制作の条件になっています。 ■index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無題ドキュメント</title> </head> <html> <head> <!-- *** javascript *** --> <script src="form.js" type="text/javascript" charset="utf-8"></script> </head> <body bgcolor="#ffffff"> フォームの入力で未入力のチェックを行います。 <form method="post" onSubmit="return chkform()" name="form1"> <input type="checkbox" name="chk[]" value="OK">OK <input type="checkbox" name="chk[]" value="NG">NG <input type="checkbox" name="chk[]" value="GOOD">GOOD <br> <br> <input type=submit value=" 送信 "> <input type=reset value=" 取消 "> </form> </body> </html> ■form.js function chkform() { var flag = 1; var list=document.getElementsByName(chk); for(var i=0;i<list.length;i++){ if(list[i].checked){ flag = 0; break; } } if(flag == 1){ window.alert('チェックボックスが未選択です'); // 入力漏れがあれば警告ダイアログを表示 return false; // 送信を中止 } else { return true ; } }

  • 背景色を変えて未入力チェックをしたいのですが。。。

    アンケートのフォームを作っています。記入項目が多いので未入力項目の背景色を変えてチェックしたいのですがうまくいきません。 フォームの中には ・テキストボックス ・ラジオボタン ・チェックボックス があり未入力の項目について背景色を変更してます。いろいろ試してみてなんとかテキストボックスとチェックボックスの背景色は変えることができたのですがラジオボタンの背景色が変えられません。 製作途中でうまく作動しませんがイメージを載せておきますのでなんとかお願いします。 <HTML> <HEAD> <TITLE>フォーム内容の入力チェック</TITLE> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <STYLE type="text/css"> <!-- .white { BACKGROUND-COLOR: white; font-color: black } --> </STYLE> <SCRIPT language="JavaScript"> <!-- // 入力チェック function checkForm(){ cForm = document.myFORM; total = cForm.elements.length; flag = false; for (i=0; i<total; i++) { cForm.elements[i].style.backgroundColor = "#FFFFFF"; if (cForm.elements[i].value == "") { cForm.elements[i].style.backgroundColor = "#FF8080"; flag = true; } } flag = BgChange(); if (flag == true){ alert("入力漏れがあるみたいよ"); } return flag; { alert("登録します、お疲れ様でした。"); } return flag; } //チェックボックス <!-- var DefaultColorCheckbox = "#FFFFFF"; //初期状態 var ChangedColorCheckbox = "#FF8080"; //変更後 function BgChange(){ for(i=0; i<document.myFORM.chk.length; i++){ if(document.myFORM.chk[i].checked){ document.myFORM.chk[i].style.backgroundColor = DefaultColorCheckbox; } else{ document.myFORM.chk[i].style.backgroundColor = ChangedColorCheckbox; } } } // --> </SCRIPT> <META content="IBM WebSphere Studio Homepage Builder Version 11.0.2.1 Trial for Windows" name="GENERATOR"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY> <DIV align="center"></DIV> フォーム内容の入力チェック&ハイライト<BR> <FORM name="myFORM" action="mailto***:@*.ne.jp" method="post"> <TABLE border="1" cellpadding="5"> <TBODY> <TR> <TD>住所:<INPUT class="white" name="Address"><BR> 氏名:<INPUT class="white" name="yourName"><BR> 年齢:<INPUT class="white" name="yourAge"></TD> </TR> <TR> <TD id="aaa">電話 <INPUT type="radio" name="電話" value="1">携帯<INPUT type="radio" name="電話" value="2">公衆電話</TD> </TR> <TR> <TD>容器 <INPUT type="radio" name="容器" value="1">ビン <INPUT type="radio" name="容器" value="2">ペットボトル</TD> </TR> <TR> <TD><INPUT type="checkbox" name="chk" value="3">火災保険<BR> <INPUT type="checkbox" name="chk" value="4">生命保険<BR> <INPUT type="checkbox" name="chk" value="5">地震保険</TD> </TR> <TR> <TD align="center"><INPUT type="button" value="登録" onclick="checkForm()"></TD> </TR> </TBODY> </TABLE> </FORM> </BODY> </HTML>

  • 背景色を変えて未入力チェックをしたいのですが。。。

    アンケートのフォームを作っています。記入項目が多いので未入力項目の背景色を変えてチェックしたいのですがうまくいきません。 フォームの中には ・テキストボックス ・ラジオボタン ・チェックボックス があり未入力の項目について背景色を変更してます。いろいろ試してみてなんとかテキストボックスとチェックボックスの背景色は変えることができたのですがラジオボタンの背景色が変えられません。 製作途中でうまく作動しませんがイメージを載せておきますのでなんとかお願いします。 <HTML> <HEAD> <TITLE>フォーム内容の入力チェック</TITLE> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <STYLE type="text/css"> <!-- .white { BACKGROUND-COLOR: white; font-color: black } --> </STYLE> <SCRIPT language="JavaScript"> <!-- // 入力チェック function checkForm(){ cForm = document.myFORM; total = cForm.elements.length; flag = false; for (i=0; i<total; i++) { cForm.elements[i].style.backgroundColor = "#FFFFFF"; if (cForm.elements[i].value == "") { cForm.elements[i].style.backgroundColor = "#FF8080"; flag = true; } } flag = BgChange(); if (flag == true){ alert("入力漏れがあるみたいよ"); } return flag; { alert("登録します、お疲れ様でした。"); } return flag; } //チェックボックス <!-- var DefaultColorCheckbox = "#FFFFFF"; //初期状態 var ChangedColorCheckbox = "#FF8080"; //変更後 function BgChange(){ for(i=0; i<document.myFORM.chk.length; i++){ if(document.myFORM.chk[i].checked){ document.myFORM.chk[i].style.backgroundColor = DefaultColorCheckbox; } else{ document.myFORM.chk[i].style.backgroundColor = ChangedColorCheckbox; } } } // --> </SCRIPT> <META content="IBM WebSphere Studio Homepage Builder Version 11.0.2.1 Trial for Windows" name="GENERATOR"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY> <DIV align="center"></DIV> フォーム内容の入力チェック&ハイライト<BR> <FORM name="myFORM" method="post"> <TABLE border="1" cellpadding="5"> <TBODY> <TR> <TD>住所:<INPUT class="white" name="Address"><BR> 氏名:<INPUT class="white" name="yourName"><BR> 年齢:<INPUT class="white" name="yourAge"></TD> </TR> <TR> <TD id="aaa">電話 <INPUT type="radio" name="電話" value="1">携帯<INPUT type="radio" name="電話" value="2">公衆電話</TD> </TR> <TR> <TD>容器 <INPUT type="radio" name="容器" value="1">ビン <INPUT type="radio" name="容器" value="2">ペットボトル</TD> </TR> <TR> <TD><INPUT type="checkbox" name="chk" value="3">火災保険<BR> <INPUT type="checkbox" name="chk" value="4">生命保険<BR> <INPUT type="checkbox" name="chk" value="5">地震保険</TD> </TR> <TR> <TD align="center"><INPUT type="button" value="登録" onclick="checkForm()"></TD> </TR> </TBODY> </TABLE> </FORM> </BODY> </HTML>

専門家に質問してみよう