- ベストアンサー
フォームチェックで変数は使えませんか?
いろいろなフォームに対応する汎用チェックスクリプトを 書いているのですが、 strName = strcChecks[i]; var a = document.forms[0].strName.value; ▲ この部分 ・・・・の名前指定の際、変数が使えないのでしょうか。 たくさん入力するテキストボックスやらチェック ボックスがあって一つ一つ、document.forms・・・ と書くのが手間なので何か方法があれば・・・
- みんなの回答 (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; ・ ・ ・ のような使い方でも出来ると思います。
お礼
早速の回答ありがとうございました。 無事、正常に動作することを確認いたしました。 心より感謝いたします。