• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:入力チェック)

商品の選択と数量の入力に関する質問

このQ&Aのポイント
  • 商品の選択と数量の入力に関する質問です。チェックボックスで商品を選択し、テキストボックスまたはプルダウンで数量を入力できるようにしたいです。未選択や未入力の場合にアラートを表示したいです。どのようなスクリプトを書けばいいでしょうか?
  • 商品の選択と数量の入力に関する質問です。商品の種類はチェックボックスで選択し、数量はテキストボックスまたはプルダウンで選択できるようにしたいです。未選択や未入力の場合にアラートを表示したいです。どのように書けばいいでしょうか?
  • 商品の種類と数量の入力に関する質問です。チェックボックスを使って商品の種類を選択し、テキストボックスまたはプルダウンで数量を入力できるようにしたいです。未選択や未入力の場合にアラートを表示したいです。どのようなスクリプトを使えばいいでしょうか?

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

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

jsの外部ファイルに関してはidで管理さえしていれば、特に問題なく いけるんじゃないでしょうか? フロートしては if(条件){だめならアラート;return false} あとはelseは使わないでずっと下にながしていって、最後までfalseを 返さなければreturn trueするという流れにすれば見やすくなると 思います。

qqw55fs9k2
質問者

お礼

ご回答くださりありがとうございました。 まだ、ちゃんとは動いていないですが、色々 と試しているうちに少し光が見えてきました。 本当にありがとうございました。

その他の回答 (1)

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

この場合、チェックされているかどうかはあまり重要ではありません。 A~Eの数量が入っているかだけチェックすればよいでしょう。 たとえばこんな感じです。 ながくなるのでA~Cとしています。 <script> window.onload=function(){ var f=document.getElementById('form0'); f["A"].disabled=!document.getElementById('checkA').checked; f["B"].disabled=!document.getElementById('checkB').checked; f["C"].disabled=!document.getElementById('checkC').checked; } function check2select(obj,targetName){ var targetObj=obj.form[targetName] targetObj.disabled=!obj.checked; } function select2check(obj,targetID){ var targetObj=document.getElementById(targetID); if(obj.value==""){ targetObj.checked=false; obj.disabled=true; } } function checkForm(f){ flg=false; for(var i=0;i<f.length;i++){ if(f[i].type=="select-one" && f[i].disabled==false){ if(f[i].value==""){ alert(f[i].name+"の数量が未選択"); return false; }else{ flg=true; } } } if(!flg) alert("なにも選ばれてません"); return flg; } </script> <form onSubmit="return checkForm(this)" id="form0"> <input type="checkbox" id="checkA" onClick="check2select(this,'A')"/><label for="checkA">A:</label> <select name="A" onChange="select2check(this,'checkA')"> <option value="">選択</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select><br /> <input type="checkbox" id="checkB" onClick="check2select(this,'B')"/><label for="checkB">B:</label> <select name="B" onChange="select2check(this,'checkB')"> <option value="">選択</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select><br /> <input type="checkbox" id="checkC" onClick="check2select(this,'C')"/><label for="checkC">C:</label> <select name="C" onChange="select2check(this,'checkC')"> <option value="">選択</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select><br /> <input type="submit" value="送る"> </form>

qqw55fs9k2
質問者

補足

早速ご回答頂き、誠にありがとうございます。無事動きました。 もし差し支えなければ、もう少しお教え頂きたいのですが、 現在、下記のような入力チェックのスクリプトを外部jsにして 使用しているのですが、これにお答えいただいたスクリプトを 組み込むことはできますでしょうか? 質問ばかりで誠に申し訳ありませんが、お分かりになるようで したら、ぜひご教授頂ければ幸いです。よろしくお願い致します。 ↓外部jsのスクリプトです。 ---------------------------------------------------------- function check(frm){ var hissu=Array('ご注文される商品','お名前','ふりがな','ご住所 / 郵便番号','ご住所 / 都道府県','ご住所 / 市町村・番地','ご住所 / 建物・ビル名','メールアドレス','お電話番号'); 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[0].type=='checkbox'){ 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; }

関連するQ&A