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

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

入力チェック

過去ログを探してみたのですが、該当する記事がなかったので、 質問させて頂きます。よろしくお願いします。 5種類位の商品をチェックボックスで選択し(複数選択可)、 チェックボックスで選択した商品の数量を、テキストボックス で入力、またはプルダウンで選択できるようにしたいと考えて います。 その際、商品の種類または数量のどちらかが未選択、または未 入力で送信しようとしたときにアラートを出したいのですが、 どういうスクリプトを書けばよいのでしょうか? やりたいことです。 種類 A・B・C・D・E ←チェックボックスで選択(複数選択可) 数量 A・B・C・D・E ←テキスト入力かプルダウンで選択 種類Aを選択して、数量Aを入力していない場合にアラートを出す。 その逆の場合もアラートを出す。同じようにB・C・D・Eもアラー トが出るようにしたい。 方両とも未入力または入力済みの場合は、アラートは出さない。 分りずらい部分がありましたら追記致しますので、 何卒よろしくお願い致します。

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

  • ベストアンサー
  • 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

  • セルに入力されたら  チェックボックスにチェック

    タイトルのとおりなのですが、A列にチエックボックスをA・B・C・Dと 作り、たとえばC1にBと入力されたらチェックボックスのBにチェックを 入れたいです。

  • チェックが重なって連続しているか調べたい

      | 1 | 2 | 3 | 4 | 5 --+--+--+--+--+--- A |   | ■|■ |   |   --+--+--+--+--+--- B |   |   | ■|■ | --+--+--+--+--+--- C |   |   |   |   | --+--+--+--+--+--- D | ■|■ |   |   | --+--+--+--+--+--- E |   |   | ■|■ | --+--+--+--+--+--- 縦横5ずつのチェックボックスがあったとして、 そのチェックが最低1ヶ所は重なって連続しているかどうか (上記の図だと 「A-2,3とBの3,4」か「A-2,3とEの3,4」か 「A-2,3とDの1,2」か「Bの3,4とEの3,4」か 「Dの1,2とA-2,3と、Bの3,4またはEの3,4」 がチェックされていたらOK、 「Dの1,2とBの3,4」か「Dの1,2とEの3,4」 がチェックされていたらダメ) を調べたいのですが、どうして良いかわかりません。 縦の列が何コマチェックされたか調べてみるとか 色々やってみたのですがどうにも上手くいきません。 要領を得ない質問ですみません。 こうやればいいんじゃない? というヒントだけでも結構です。 よろしくお願いいたします!

  • 【Excel】チェックボックス情報取得【VBA】

    お疲れ様です。 チェックボックスの現状を取得したいです。 ネットで調べていて色々見つけたのですが、 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_checkbox.html このサイトの方のVBAが参考になるかと思ったのですが、 頭が回らず、良く分からない状態です。 チェックボックスは A B C D E F と6つ作成しており、 その隣に Atext Btext Ctext Dtext Etext Ftext というテキストボックスを作成しています。 ひとつのみチェックがついていた場合と 複数チェックがついていた場合の出力を変更したいと思っています。 例 Aのみにチェックがついていた場合 A1のセルに「a1」と入力 Bのみにチェックがついていた場合 A1のセルに「a2」と入力 A、Bにチェックがついていた場合 Atext~Ftextまでのどこまでデータが入っているかを確かめる A1のセルに「a1100」(Dまで入っていた場合) A1のセルに「a11000」(Eまで入っていた場合) データ出力は、必ず頭に「a」を入力します。 一つだけチェックが入っている場合は、上から順番にAならa1、Bならa2,Cならa3と入力 複数チェックが入っている場合は、テキストボックスに入っているデータの個数を確認し、 「a」と、選択されたデータを「1」テキストボックスに入っているけど選択されていないデータを「0」 とA1セルに表記します。 チェックボックスとテキストボックスの名称は、上から A  AText B  BText C  CText D  DText E  EText F  FText という名称になっています。 ぐちゃぐちゃした文章で大変申し訳ありませんが、回答よろしくお願いいたします。

  • 入力値をListボックスに表示させたい。

    (仕様1) ユーザーフォーム1でテキストボックス1~5に 入力した値をListボックスに表示させたい。 例えば textbox1=A,textbox2=B,textbox3=C・・・ と入力されたら、 A B C D E のように順に横方向一列に表示させるようにしたいです。 (仕様2) これをコマンドボタン1を押す度にリストボックス1に新しく追加されていく 様にしたいのですが、できますでしょうか。 例えば、 A B C D E A C D B E (テキストボックスに入力後ボタン1を押す) A C B D E (テキストボックスに入力後ボタン1を押す)

  • 2つのプルダウンメニューで、同じものを選べないようにする

    ふたつの選択肢を選ぶために、プルダウンメニューがふたつ並んでいます。  例えばメニュー1の選択肢 ・A ・B ・C ・D  でAを選んだとき、メニュー2の内容が ・B ・C ・D  になるようにしたいのですが、どうすればいいでしょうか?  チェックボックスで選べる数をふたつまでにする、というのも方法としてはありなんですが、今回は都合上プルダウンメニューで実装したいのです。ご教授お願いします。

  • サーブレット 選択されたチェックボックスの表示について

    こんにちわ。 独学でサーブレットの勉強をしています。 チェックボックスで、どのチェックボックスをを選択したかを表示したいのですが、ネットや参考書を見てもよくわかりません。 イメージとしては、 □A □B □C □D □E とあってBを選択したら、ブラウザに 選択結果 B 2番目がチェックされました。 こんな感じで表示させたいです。 自分ではBの部分までは表示させうことができました。 よろしければ、アドバイスをお願いします。

    • ベストアンサー
    • Java
  • プルダウンからテキストボックスに入力

    プルダウンから選択したものをテキストボックスに表示させています。 <script type="text/javascript"> function displayText(thatOption, textId) { var text1 = document.getElementById(textId); text1.value = thatOption.title; } </script> <SELECT onchange="displayText(this.options[this.selectedIndex], 'text1');"> <option value="1" title=""></option>  #空欄 <option value="2" title="A">A</option> #大文字 <option value="3" title="a">a</option> #小文字 </SELECT> <input type="text" value="" id="text1"> プルダウンを2個や5個など複数用意して、それぞれ選択したものをテキストボックス1行に 続けて表示させたいです。 上記のプルダウンをA~Eまで用意した場合、[A b C D e]と表示させたり、Cは選ばず 空欄を選択した場合は、[A b D e]と表示させる事は可能でしょうか? また、テキストボックスにvalue="ZZ"と初期表示を入れて、その後に 続くように表示させたいです。 [ZZ A b C D e]とする事は可能でしょうか?

  • Excelで在庫数チェックを行いたい

    まず現状ですが、Sheet1のA列に商品型番がa,b,c,d,eとあります。 B列に在庫数を入力します。 Sheet2にはA列に商品型番があるのですが、a,a-1,a-2(以下商品bも同じb-1,b-2)とあります。B列にそれぞれの数量があります。 そこで、在庫入力セルの数式なのですが、Sheet2のa,a-1,a-2の数量を抽出して合計し、その値を返すようにしたいと思っています。商品aはa,a-1,a-2の合計数を表示させるという形です。 分かりにくくて申し訳ないですが、御教授頂ければ幸いです。 宜しくお願い致します。

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

    フォームメール用のCGIを作成しているのですが、チェックボックスの入力チェックをCGIでおこないたい場合、どのようにすればよいのでしょうか? 複数選択可で1つも選択されていない場合エラーメッセージを出すようにしたいと思っており、チェックボックスには1個づつ個別の変数を用意しています。 if ($name eq "") { print "Content-type: text/html;charset=euc-jp\n\n"; print "お名前を入力してください。"; exit(0); } テキストボックスはこのように入力チェックをおこなっています。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • エクセルのマクロのコンボボックスへ入力した

    エクセルのマクロのコンボボックスへ入力した値をセルに表示する際のことで質問があります。 ABCDEという5つのコンボボックスから、A1、A2、A3,A4、A5のセルへ入力していますが、時々CやDの値がなくてEの値を左詰めするというか空白のセルを作らずに入力したいです。 例えばAのコンボボックスには入力でA1、Bのコンボボックスは未入力でCのコンボボックスに入力した値をA2のセルへ入力といった具合にしたいです。 コンボボックスBが未入力なら、 ・コンボボックスCの値をBへ ・コンボボックスDの値をCへ ・コンボボックスEの値をDへ ・コンボボックスEは空白に コンボボックスCが未入力なら、 ・コンボボックスDの値をCへ ・コンボボックスEの値をDへ ・コンボボックスEは空白に コンボボックスDが未入力なら、 ・コンボボックスEの値をDへ ・コンボボックスEの値を入力 という手順を挿入。 で本来のやりたいことの コンボボックスA~EをセルA1:A5の範囲へ入力。 と教えてもらったんですが、それを生かせず、自分なりに考えてみて IF Then Else を使ってA3まではやれたんですが、A4、A5がうまくできなくて挫折しています。 http://www.max.hi-ho.ne.jp/happy/YNxv233.htmlを参考にしてくださいと教わったのですがどれが使えるのかもわからず・・・・。 わかんないことばかりですいません。

専門家に質問してみよう