送信フォーム確認画面を作成する方法

このQ&Aのポイント
  • チェックボックスで複数選択した項目のみ、送信後の確認画面に表示する方法について説明します。
  • 選択した項目が1つもない場合はエラーメッセージを表示し、購入日が入力されていない場合もエラーメッセージを表示します。
  • 確認画面では選択した項目と購入日を表示し、ユーザーに内容の確認を促します。OKボタンを押すことで処理を続行します。
回答を見る
  • ベストアンサー

送信フォーム確認画面

送信フォーム確認画面 始めまして、初心者で御座いますが、チェックボックスで(複数選択可) チェックしたものだけ、送信ボタンクリック後の確認画面に出るようにしたいのですが、 + "選択:" + document.Order.elements[ ].value + "\n" 上記[ ]の中になにを記載するばよいのでしょうか、 宜しくお願いします。 <SCRIPT language=JavaScript> function SubmitCheck(){ if(document.Order.elements[a_fn].checked == "") if(document.Order.elements[b_fn].checked == "") if(document.Order.elements[c_fn].checked == ""){ alert("最低1つチェックして下さい"); return false; } if(document.Order.elements[d_fn].value == ""){ alert("購入日を入れてください"); return false; } var confirm_str = ""; confirm_str = "下記の事項をご確認ください。\n" + "正しければ、OKを押してください。\n" + "--------------------------------\n" + "選択:" + document.Order.elements[ ].value + "\n" +"" + "購入日:" + document.Order.elements[d_fn].value + "\n\n"; temp = 0; confirm_str += "--------------------------------\n"; if(confirm(confirm_str)){ return true; } else return false; return true; } </SCRIPT>

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

なんだかよくわかりませんが、チェックボックスでチェックされている値だけ取りたいという意味なのかしら。 全体像が不明なのでよくわかりませんが、ご提示のものがご質問以外の部分はちゃんと動作していると仮定してよいのであれば、雰囲気としてこんな感じでしょうか。 (全角空白は半角に)  var elms = document.forms["Order"].elements;  var names = [a_fn, b_fn, c_fn];  var i, e, str = "";  for(i=0; e=elms[names[i++]];)   if(e.checked) str += (str?"\n":"") + e.value;  if(!str)   alert("チェックしてちょ");  else if((e=elms[d_fn].value)=="")   alert("日付が欲しい");  else   alert(str + "\n" + e);

yamada_2667
質問者

お礼

回答有難う御座います。

その他の回答 (1)

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

こういうこと? <script> function SubmitCheck(f){ if(!f.elements["a_fn"].checked && !f.elements["b_fn"].checked && !f.elements["c_fn"].checked ){ alert("最低1つチェックして下さい"); return false; } if(f.elements["d_fn"].value == ""){ alert("購入日を入れてください"); return false; } var confirm_str = "下記の事項をご確認ください。\n" + "正しければ、OKを押してください。\n" + "--------------------------------\n" + "選択:\n" + (f.elements["a_fn"].checked?f.elements["a_fn"].value + "\n":"") + (f.elements["b_fn"].checked?f.elements["b_fn"].value + "\n":"") + (f.elements["c_fn"].checked?f.elements["c_fn"].value + "\n":"") + "購入日:" + f.elements["d_fn"].value + "\n\n" + "--------------------------------\n"; return confirm(confirm_str); } </script> <form onsubmit="return SubmitCheck(this);"> <div> <input type="checkbox" name="a_fn" value="a_val">a <input type="checkbox" name="b_fn" value="b_val">b <input type="checkbox" name="c_fn" value="c_val">c </div> <div> d:<input type="text" name="d_fn" > </div> <div> <input type="submit" name="go" > </div> </form>

yamada_2667
質問者

お礼

回答有難う御座います。

yamada_2667
質問者

補足

有難うございます。 下記のようにかえたら、うまくいかないのですが、どこかおかしいでしょうか、 <script> function SubmitCheck(f){ if(!f.elements["バナナ"].checked && !f.elements["リンゴ"].checked && !f.elements["みかん"].checked ){ alert("最低1つチェックして下さい"); return false; } if(f.elements["d_fn"].value == ""){ alert("購入日を入れてください"); return false; } var confirm_str = "下記の事項をご確認ください。\n" + "正しければ、OKを押してください。\n" + "--------------------------------\n" + "選択:\n" + (f.elements["購入"].checked?f.elements["バナナ"].value + "\n":"") + (f.elements["購入"].checked?f.elements["リンゴ"].value + "\n":"") + (f.elements["購入"].checked?f.elements["みかん"].value + "\n":"") + "購入日:" + f.elements["d_fn"].value + "\n\n" + "--------------------------------\n"; return confirm(confirm_str); } </script> <form onsubmit="return SubmitCheck(this);"> <div> <input type="checkbox" name="購入" value="バナナ">a <input type="checkbox" name="購入" value="リンゴ">b <input type="checkbox" name="購入" value="みかん">c </div> <div> d:<input type="text" name="d_fn" > </div> <div> <input type="submit" name="go" > </div> </form> 都合つきましたら、宜しくお願いします。

関連するQ&A

  • JavaScript 送信フォーム確認画面

    始めまして、初心者で御座いますが、javascriptでチェックボックスで(複数選択可) チェックしたくだものだけ、送信ボタンクリック後の確認画面に出るようにしたいのですが、どうしたらよいのでしょうか、 宜しくお願いします。 下記抜粋いたしました。 <SCRIPT language=JavaScript> function SubmitCheck(){ if(document.Order.elements[a_fn].checked == "") if(document.Order.elements[b_fn].checked == "") if(document.Order.elements[c_fn].checked == ""){ alert("最低1つチェックして下さい"); return false; } if(document.Order.elements[d_fn].value == ""){ alert("購入日を入れてください"); return false; } var confirm_str = ""; confirm_str = "下記の事項をご確認ください。\n" + "正しければ、OKを押してください。\n" + "--------------------------------\n" + "選択:" + document.Order.elements[i].value + "\n" + "" + "購入日:" + document.Order.elements[d_fn].value + "\n\n"; temp = 0; confirm_str += "--------------------------------\n"; if(confirm(confirm_str)){ return true; } else return false; return true; } </SCRIPT> <FORM name=Order onsubmit="return SubmitCheck()" action=formmail.cgi method=post><INPUT type=hidden size=-1 value=×××@○○○.jp name=to_mail> <INPUT type=hidden size=-1 value=http://×××.jp/123.htm name=ok_page> <INPUT type=hidden size=-1 value=OrderJP name=sub> <FONT size=2 ><STRONG>選択</STRONG></FONT> <FONT size=2><STRONG><INPUT type=checkbox value=バナナ name=購入></STRONG></FONT> <FONT size=2><STRONG>バナナ</STRONG></FONT> <FONT size=2><STRONG><INPUT type=checkbox value=りんご name=購入></STRONG></FONT><FONT color=navy size=2><STRONG>りんご</STRONG></FONT> <FONT size=2><STRONG><INPUT type=checkbox value=みかん name=購入></STRONG></FONT> <FONT size=2><STRONG>みかん</STRONG></FONT> <FONT size=2 ><STRONG>購入</STRONG></FONT> <NOBR><INPUT style="WIDTH: 106px; HEIGHT: 22px" maxLength=22 size=14 name=購入><FONT size=2></FONT></FONT> </FONT></NOBR><BR> <CENTER><INPUT type=submit value=送信 name=Submit>  </CENTER></FORM>

  • チェックしなくても、確認のウインドウがでる

    チェックしなくても、確認のウインドウがでてしまうのですが、どこがいけないのでしょうか <SCRIPT language=JavaScript> function SubmitCheck() } if (document.Order.elements[kiyaku_fn].value == ""){ return false; } else if (document.Order.elements[kiyaku_fn].value == "同意"){ alert("規約に同意して下さい"); return false; } var confirm_str = ""; confirm_str = "下記の事項をご確認ください。\n" + "正しければ、OKを押してください。\n" + "--------------------------------\n" + "規約:" + document.Order.elements[kiyaku_fn].value + "\n\n"; temp = 0; confirm_str += "--------------------------------\n"; if(confirm(confirm_str)){ return true; } else return false; return true; } </SCRIPT> <INPUT id=checkbox1 type=checkbox value="同意" name=checkbox1>規約

  • オーダーフォーム最終確認画面

    始めまして、まったくの初心者で御座いますが、オーダーフォーム最終確認画面でチェックボックスで(複数選択可) チェックしたくだものだけ、送信ボタンクリック後の最終確認画面に出るようにしたいのですが、(チェックしなのは、出ないようにしたい)どうしたらよいのでしょうか、 宜しくお願いします。 下記抜粋いたしました。 <SCRIPT language=JavaScript> function SubmitCheck(){ if(document.Order.elements[a_fn].checked == "") if(document.Order.elements[b_fn].checked == "") if(document.Order.elements[c_fn].checked == ""){ alert("最低1つチェックして下さい"); return false; } if(document.Order.elements[d_fn].value == ""){ alert("購入日を入れてください"); return false; } var confirm_str = ""; confirm_str = "下記の事項をご確認ください。\n" + "正しければ、OKを押してください。\n" + "--------------------------------\n" + "選択:" + document.Order.elements[i].value + "\n" +"" + "購入日:" + document.Order.elements[d_fn].value + "\n\n"; temp = 0; confirm_str += "--------------------------------\n"; if(confirm(confirm_str)){ return true; } else return false; return true; } </SCRIPT> <FORM name=Order onsubmit="return SubmitCheck()" action=formmail.cgi method=post><INPUT type=hidden size=-1 value=×××@○○○.jp name=to_mail> <INPUT type=hidden size=-1 value=http://×××.jp/123.htm name=ok_page> <INPUT type=hidden size=-1 value=OrderJP name=sub> <FONT size=2 ><STRONG>選択</STRONG></FONT> <FONT size=2><STRONG><INPUT type=checkbox value=バナナ name=購入></STRONG></FONT> <FONT size=2><STRONG>バナナ</STRONG></FONT> <FONT size=2><STRONG><INPUT type=checkbox value=りんご name=購入></STRONG></FONT><FONT color=navy size=2><STRONG>りんご</STRONG></FONT> <FONT size=2><STRONG><INPUT type=checkbox value=みかん name=購入></STRONG></FONT> <FONT size=2><STRONG>みかん</STRONG></FONT> <FONT size=2 ><STRONG>購入</STRONG></FONT> <NOBR><INPUT style="WIDTH: 106px; HEIGHT: 22px" maxLength=22 size=14 name=購入><FONT size=2></FONT></FONT> </FONT></NOBR><BR> <CENTER><INPUT type=submit value=送信 name=Submit>  </CENTER></FORM>

  • オーダー送信フォーム最終確認画面

    オーダー送信フォーム最終確認画面 始めまして、まったくの初心者で御座いますが、オーダーフォーム最終確認画面でチェックボックスで(複数選択可) チェックしたくだものだけ、送信ボタンクリック後の最終確認画面に出るようにしたいのですが、(チェックしなのは、出ないようにしたい)どうしたらよいのでしょうか、 ---------------------------------------------------------- 出来れば下記のような確認ウインドウがでるようにしたのですが ※みかんのみにチェックした場合 注文確認 下記の事項をご確認ください 正しければ、OKを押してください 選択 みかん 購入日 ○月×日 ------------------------------------宜しくお願いします。 下記抜粋いたしました。 <SCRIPT language=JavaScript> function SubmitCheck(){ if(document.Order.elements[a_fn].checked == "") if(document.Order.elements[b_fn].checked == "") if(document.Order.elements[c_fn].checked == ""){ alert("最低1つチェックして下さい"); return false; } if(document.Order.elements[d_fn].value == ""){ alert("購入日を入れてください"); return false; } var confirm_str = ""; confirm_str = "下記の事項をご確認ください。\n" + "正しければ、OKを押してください。\n" + "--------------------------------\n" + "選択:" + document.Order.elements[i].value + "\n" +"" + "購入日:" + document.Order.elements[d_fn].value + "\n\n"; temp = 0; confirm_str += "--------------------------------\n"; if(confirm(confirm_str)){ return true; } else return false; return true; } </SCRIPT> <FORM name=Order onsubmit="return SubmitCheck()" action=formmail.cgi method=post><INPUT type=hidden size=-1 value=×××@○○○.jp name=to_mail> <INPUT type=hidden size=-1 value=http://×××.jp/123.htm name=ok_page> <INPUT type=hidden size=-1 value=OrderJP name=sub> <FONT size=2 ><STRONG>選択</STRONG></FONT> <FONT size=2><STRONG><INPUT type=checkbox value=バナナ name=購入></STRONG></FONT> <FONT size=2><STRONG>バナナ</STRONG></FONT> <FONT size=2><STRONG><INPUT type=checkbox value=りんご name=購入></STRONG></FONT><FONT color=navy size=2><STRONG>りんご</STRONG></FONT> <FONT size=2><STRONG><INPUT type=checkbox value=みかん name=購入></STRONG></FONT> <FONT size=2><STRONG>みかん</STRONG></FONT> <FONT size=2 ><STRONG>購入日</STRONG></FONT> <NOBR><INPUT style="WIDTH: 106px; HEIGHT: 22px" maxLength=22 size=14 name=購入日><FONT size=2></FONT></FONT> </FONT></NOBR><BR> <CENTER><INPUT type=submit value=送信 name=Submit>  </CENTER></FORM>

  • ジャバスクリプト エラーになる

    下記エラーになるのですが、宜しくお願いします・ 『利用規約に同意する』と書かれたチェックボックスにチェックを入れてある場合のみ確認のウインドウがでるという仕組みを作りたいのですが if(document.Order.elements[kiyaku_fn].value == ""){ alert("規約に同意して下さい"); return false; else if (document.Order.elements[kiyaku_fn].value == "on") return true; }

  • フォーム入力チェックの効率のよいソース

    こんにちは、おせわになります。 アンケートを作っています。 内容が何項目かあり、そのうちの多くがラジオボタンによるものです。 入力チェックを行う際に下記のような形で行っておりますが、 ひとつの項目につき、ラジオボタンが10個ほど用意されてるものもあり、 10個分 document.forms.reason[0].checked==false) && と付け足していくのは効率が悪いとおもいます。 簡潔にソースを書くにはこの部分をどう書けばいいか教えてください。 多分forを使うのかなとは思いますが よくわかりません。 それと念のため補足ですが、ひとつの関数の中にすべてのチェックを入れたいので 性別のラジオボタン分の関数、年代のラジオボタン分の関数のように 分けずに書いています。 function aaa() { if ((document.forms.reason[0].checked==false) && (document.forms.reason[1].checked==false)){ alert("ボタンが未選択です"); return false ; } if ((document.forms.sei[0].checked==false) && (document.forms.sei[1].checked==false)){ alert("ボタンが未選択です"); return false ; } if ((document.forms.age[0].checked==false) && (document.forms.age[1].checked==false)&& (document.forms.age[2].checked==false)&& (document.forms.age[3].checked==false)){ alert("ボタンが未選択です"); return false ; } ・・・・・・・・・・・・・・・つづく } //--> </script> よろしくお願いします!

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

    実は過去の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>

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

    ラジオボタンの選択チェック、セレクトボタンの選択チェックのあとにチェックボックスの選択チェックをしたいのですが、どのように入れればよいのでしょうか。教えてください。 ↓参考までに↓ 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 restChar() { if(10000 < document.F1.ご質問内容.value.length) window.alert("ご質問内容は全角5,000字以内でお願いします"); } function check(){ var flag = 0; if(document.F1.name.value == ""){ // 「お名前」の入力をチェック flag = 1; } else if(document.F1.kana.value == ""){ // 「パスワード」の入力をチェック flag = 2; } else if(document.F1.mail.value == ""){ // 「コメント」の入力をチェック flag = 3; }      else if(document.F1.ご質問内容.value == ""){ // 「コメント」の入力をチェック flag = 4; } if(flag == 1){ window.alert('お名前を入力してください'); // 入力漏れがあれば警告ダイアログを表示 return false; // 送信を中止 } if(flag == 2){ window.alert('フリガナを入力してください'); // 入力漏れがあれば警告ダイアログを表示 return false; // 送信を中止 } if(flag == 3){ window.alert('メールアドレスを入力してください'); // 入力漏れがあれば警告ダイアログを表示 return false; // 送信を中止 }      if(flag == 4){ window.alert('ご質問内容を入力して下さい'); // 入力漏れがあれば警告ダイアログを表示 return false; // 送信を中止 } fOBJ = document.F1.mail.value; check = /.+@.+\..+/; if (!fOBJ.match(check)){ window.alert("メールアドレスが正しくありません"); return false; // 送信を中止 } fOBJ = document.F1.ご質問内容.value.length; if(10000 < fOBJ){ window.alert("ご質問内容は全角5,000字以内でお願いします"); return false; // 送信を中止 } return true; // 送信を実行 } こんな感じです。 1-4のチェックは問題ないのですが、 アドレスと文字数のチェックは、一度は ダイアログがでますが、連続で押すと通ってしまいます。 何がわるいのでしょうか?

    • ベストアンサー
    • Java
  • javascript 要素取得

    htmlでチェックボックスを作り、その値をjavascriptで取得したいと思い、 下記のようなプログラムを書きました。 セレクトボックスから複数選択できるようにしたいのですが、 表示されるのは複数選んだ際に一番初めに選択したものだけです。  例) 「あああ」と「いいい」を選ぶと「あああ」のみ表示される。 しかし、これを「あああ.いいい」としたいのです。 できれば、 「あああ  いいい」 と改行できるといいです。 formの中にたくさんの項目があるため、 forのところがうまくいっていないのでしょうか? どなたかよろしくお願いします。 javascript側 function checkbox(){  var str="";  for(i=0;i<document.form1.elements.length;i++){   if(document.form1.elements[i].checked){     if(str != "") str = str + ".";     str = str + document.form1.document[i].value;   }  }  if(str == ""){   alert("入力してください");   return false;  }else{   document.form1.submit();  } } HTML側 <form action="<%=遷移先ページ%>" method="post" name="form1"> <select 複数> <input 複数> <input type="checkbox" name="document" value="・あああ"/>あああ <input type="checkbox" name="document" value="・いいい"/>いいい <input type="checkbox" name="document" value="・ううう"/>ううう <input type="submit" value="Submit" onclick="return checkbox();">

専門家に質問してみよう