- PR -

javaScriptでform内のプロパティ(配列型)の値を名前指定で取得したい

1
投稿者投稿内容
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2005-03-14 14:01

今日は、優子です。

javaScriptでform内のプロパティを参照したい時、以下の二つの方法があると思いますが、

@document.FORM1.elements[0];
Adocument.FORM1.プロパティ名;

Aの方法で、例えばプロパティが配列の場合参照が上手くいきません。
例)
<input type="text" name="data01[0]" value="1">
alert(document.FORM1.data01[0].value)
とすると、'data01.0'はNULLまたはオブジェクトではありません
となる

data01を配列にしなければ値は取れています。elements[index]のやり方を用いれば出来ないこともないのですが、Aの方法でどうしても値を取りたいです。

ご意見のある方、お待ちしております。
以上です。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-03-14 18:01
alert(document.FORM1["data01[0]"].value);

といった形で戦ってください。
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2005-03-15 01:15
インギさん、ご返答ありがとうございました。
参考にさせていただきます。
わんこ
常連さん
会議室デビュー日: 2003/04/30
投稿数: 46
投稿日時: 2005-03-15 10:21
もう解決されたかもしれませんが、

<input type="text" name="data01" value="1">
<input type="text" name="data01" value="2">
<input type="text" name="data01" value="test">

として、
alert(document.FORM1.data01[0].value)
すると取れると思います。

ただ、data01が配列で要素が2以上になっている必要があると思います
配列の要素が1個しかない場合は
document.FORM1.data01.valueとしないと駄目だったと思いますが・・・
lengthとって取り方を判定して私は似たようなことをしていました

name属性にdata01[0]などとしても配列としては認識してくれないってこと
なんでしょうかね
他にやり方あるのかな?
1

スキルアップ/キャリアアップ(JOB@IT)