アプリ版:「スタンプのみでお礼する」機能のリリースについて

JavaScriptでフォームの半角数字のチェックをしたいのですが、
form内容をCGI(PHP)に渡すためname値を配列にしないといけないのですが、
以下のスクリプトだとエラーが出てしまいます。

*実際はif(isNaN~)と<input~>をループで書き出しており、行数が不特定なので
それぞれ別のname値を使うことができない状態です。

<script language="JavaScript">
function check() {
if(isNaN(document.form1.hoge[0].value)){
alert("値は半角数字で入力してください。");
return(false);
}
if(isNaN(document.form1.hoge[1].value)){
alert("値は半角数字で入力してください。");
return(false);
}
return(true);
}
</script>

<form method="post" action="xxx.cgi" onSubmit="return check()" name="form1">
<input type="text" name="hoge[0]">
<input type="text" name="hoge[1]">
</form>

特にCGIに渡す必要がなければ
<input type="text" name="hoge">
<input type="text" name="hoge">
としてやればチェックができるのですが、どうしても次の
処理があるためname値を配列にする必要があります。

解決方法がわかる方がおられましたらご教授ください。
以上よろしくお願いいたします。

A 回答 (1件)

かなり力業ですが、以下の方法でイケます。

ええイケますとも。

function check(){
 for(i=0;i<=document.all.length;i++){
  try{
    if(document.all[i].name.indexOf('HOGE[',0) != -1)
     if(isNaN(document.all[i].value)){
      alert("値は半角数字で入力してください。");
      return false;
     }
  }catch(x){}
 }
}

上記のままコピー&ペーストすれば使えますが、
その際他のフィールドの名前に'HOGE['は使わないようにしてくだサイね。
    • good
    • 0
この回答へのお礼

ありがとうございました!
makokokoさんのスクリプトで思ったとおりの動作しました。

ついでに空白チェックも以下のようにしてみました。

if(document.all[i].value==""){
alert("値を入力してください。");
return false;
}

どうもありがとうございました。

お礼日時:2001/08/20 09:38

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