注文フォーム

[新着] Webテンプレートを仮オープンしました



0   名前: 勉強中 : 2004/09/17 14:41
スクリプト部
<SCRIPT language="JavaScript">
function cal(){
kosuu = new Array();
kosuu[0]=document.form1.kosuu1.value;
kosuu[1]=document.form1.kosuu2.value;
document.form1.shoukei1.value = kosuu[0]*100;
document.form1.shoukei2.value = kosuu[1]*200;
shoukei = new Array();
shoukei[0]=document.form1.shoukei1.value;
shoukei[1]=document.form1.shoukei2.value;
var tkosuu = 0;
for (n=0; n<kosuu.length; n++){
tkosuu+= eval(kosuu[n])
}
document.form1.total_kosuu.value = tkosuu;
var total = 0;
for (i=0; i<shoukei.length; i++){
total+= eval(shoukei[i])
}
document.form1.goukei.value = total;
}
function check1(){
if(document.form1.goukei.value == 0){
alert("商品を選択してください");
document.form1.kosuu1.focus();
return false;
}
return true;
}
</SCRIPT>

フォーム部
<FORM name="form1"action="***.cgi" method="post" onsubmit="check1()">
100円の商品<INPUT type="text" name="kosuu1" size="2" onkeyup="cal()" tabindex="1">個
&nbsp;小計<INPUT type="text" name="shoukei1" size="10" readonly>円<BR>
200円の商品<INPUT type="text" name="kosuu2" size="2" onkeyup="cal()" tabindex="2">個
&nbsp;小計<INPUT type="text" name="shoukei2" size="10" readonly>円<BR>
<BR>
合計<INPUT type="text" name="total_kosuu" size="2" readonly value="0">個
&nbsp;<INPUT type="text" name="goukei" size="10" readonly value="0">円<BR>
<BR>
<INPUT type="submit" value="内容確認"><INPUT type="reset" value="リセット">
</FORM>

1   名前: 勉強中 : 2004/09/17 14:39
すいません。
質問内容です。
・個数をまったく入力しない場合にアラートは出るが送信されてしまうのを
 直したい。
・個数入力の際に半角数字以外を入力するとアラートがでるようにしたい。

よろしくお願い致します。

2   名前: ばあど : 2004/09/18 00:05   [URL
・個数をまったく入力しない場合にアラートは出るが送信されてしまうのを
 直したい。
onsubmit="return check1();"
とします。
onsubmit自身からfalseを返さないと、
「命令が終わった、さぁ次は送信しよう!」となります。

・個数入力の際に半角数字以外を入力するとアラートがでるようにしたい。
んー・・・正規表現??

例えば、kosuu1に
onchange="checknum()"
とするとして、
function checknum(){
if(this.value.match(/^[0-9]+$/){
return true;
}else{
alert("個数を入力してください");
return false;
}
みたいなかたちで。

試せてないので、動かなかったら改めて質問してください。

一覧へ戻る