プロが教えるわが家の防犯対策術!

始めまして、初心者で御座いますが、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>

A 回答 (1件)

送信ボタン押下後の確認画面をJavascriptで出す、という話題ですが、これはJavascriptでなく、サーバサイド(phpやASP.NET)で行うべきだと思います。



Webアプリでは、入力フォームの内容は、(データベース使用の是非とは無関係に)いかなる場合も、サーバで処理前に検証するのが常識であり、そこで確認画面を表示することが多いと思います。もし、その時点で不都合があった場合、「以下の内容がNGです」を出した後、2画面戻さないと再入力画面に戻れません。

また、チェックボックスのような複数の選択値をもつデータのは、サーバ側では、送信フォーム内容を簡単に配列で取得できるため、パースする手間もありません。

Javascript側では大ざっぱな検証にとどめ、サーバサイドで精密に検証、その後、確認(コンファメーション)画面を出すのが定石かと思うのですが。。。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!