OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

フォームのname値を配列にしてJavaScriptでフォームのチェックをする方法

  • 暇なときにでも
  • 質問No.120354
  • 閲覧数1656
  • ありがとう数4
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 66% (8/12)

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値を配列にする必要があります。

解決方法がわかる方がおられましたらご教授ください。
以上よろしくお願いいたします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル7

ベストアンサー率 50% (7/14)

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

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['は使わないようにしてくだサイね。
お礼コメント
polco2001

お礼率 66% (8/12)

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

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

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

どうもありがとうございました。
投稿日時 - 2001-08-20 09:38:40
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ