• ベストアンサー

フォームチェックで変数は使えませんか?

いろいろなフォームに対応する汎用チェックスクリプトを 書いているのですが、 strName = strcChecks[i]; var a = document.forms[0].strName.value;                ▲               この部分 ・・・・の名前指定の際、変数が使えないのでしょうか。 たくさん入力するテキストボックスやらチェック ボックスがあって一つ一つ、document.forms・・・ と書くのが手間なので何か方法があれば・・・

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

  • ベストアンサー
  • peso
  • ベストアンサー率41% (40/97)
回答No.1

この部分って、strName のことですよね?(使用しているフォントでみると、[0]を指して見えるので・・・) strName = strcChecks[i]; で配列から文字列で strName に代入している、と仮定して回答します。 var a = eval("document.forms[0]." + strName + ".value;"); おそらく、これで出来るかと・・・ あとは、名前で管理するのではなく、番号で管理する方法もあります。 たとえば、 <FORM> <INPUT ・・・> <INPUT ・・・> <INPUT ・・・> </FORM> とあれば、一番上の <INPUT ・・・> の value を参照するときは document.forms[0].elements[0].value; 同じく、2番目の <INPUT ・・・> の value を参照するときは document.forms[0].elements[1].value; 3番目は document.forms[0].elements[1].value; となります。 なので、配列にチェックしたいものの番号を順に入れていき、 var strcChecks = new Array(0, 2); var cnt, a; for (cnt = 0; cnt < strcChecks.length; cnt++){ a = document.forms[0].elements[strcCheck[cnt]].value;               ・               ・               ・ のような使い方でも出来ると思います。

yasu
質問者

お礼

早速の回答ありがとうございました。 無事、正常に動作することを確認いたしました。 心より感謝いたします。

関連するQ&A