プロが教える店舗&オフィスのセキュリティ対策術

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

表題の通りなのですが、「<input type="text" name="amount">」のような、name属性が同じテキストフォームが3つ(同様のページが複数あり、ページによっては最大10個くらいあります)あります。

テキストフォームの初期値は「0」になっており、CGIにデータを送る際、3つのフォームのうちどれかが「0」以外の数字であれば(1以上)データを送ることができ、すべてのフォームが「0」であればアラートを出して再入力してもらうようにいたいのですが、この場合、どのようなスクリプトを書けばよいのでしょうか?

分かりずらい部分は補足説明致しますので、どうぞご教授下さいますようお願い致します。

A 回答 (3件)

formが3つあるのか、ひとつのform内に同じ3つ同じ名前があるのでしょうか・・・



送るのを制限するならこんな感じ?

<script>
function check(f){
var flg=false;
for(var i=0;i<f.length;i++){
if(f[i].name=="amount" && parseInt(f[i].value)>0){
flg=true;
break;
}
}
if (!flg) alert("incorrect");
return flg;
}
</script>

<form onSubmit="return check(this)">
<input type="text" name="amount" value="0">
<input type="text" name="amount" value="0">
<input type="text" name="amount" value="0">
<input type="submit" value="send">
</form>
    • good
    • 1
この回答へのお礼

ご回答頂きありがとうございます。
お教え頂いた内容でできました。
ありがとうございました。

お礼日時:2009/04/26 21:07

var c = 0, f = 0, o, t = document.getElementsByName('amount');


while (o = t[c++])f-=o.value;
alert(f?'ok!':'No use!');
    • good
    • 0
この回答へのお礼

ご回答頂きありがとうございます。
お教え頂いた内容でできました。
ありがとうございました。

お礼日時:2009/04/26 21:08

何がわからないのかよくわかりませんが、複数のフォームの扱いがわからないのだとすると、こんなかんじで。


forms=document.forms;
for(var i=0; i<forms.length; ++i){
 if(forms[i].amount.value=="0"){
  ・・・・
 }
}
    • good
    • 0
この回答へのお礼

ご回答頂きありがとうございます。
お教え頂いた内容でできました。
ありがとうございました。

お礼日時:2009/04/26 21:08

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