dポイントプレゼントキャンペーン実施中!

<input type="hidden" name="list[0].hdnProductCd" value="00001">
<input type="hidden" name="list[1].hdnProductCd" value="00001">
<input type="hidden" name="list[2].hdnProductCd" value="00001">
とあって2行目のvalue値を取りたいのですが
document.form.list[1].hdnProductCd.valueでとれませんでした。
(nullまたはオブジェクトではないと警告)
わかるかたお願い致します。

A 回答 (2件)

HTMLの name の名前の付け方には規則がありませんので、名前の付け方には問題がありません。



この場合の input の親要素の名前が form1 だとすると、

document.form1["list[1].hdnProductCd"].value

で値が取得できます。これは連想配列と言って、配列の添え字に文字列を使うものです。これでなぜアクセスできるかというと、例えば document.form1 と、document["form1"] が同じ意味であるからです。

しかし、この場合ですと、

document.form1.list[1].hdnProductCd.value

と書くと、 form1 のプロパティの list という存在しないものを指してしまうことになります。

別の手法では、配列ではありませんが、HTMLに

<input type="hidden" id="hdnProductCd_0" value="00001">
<input type="hidden" id="hdnProductCd_1" value="00001">
<input type="hidden" id="hdnProductCd_2" value="00001">

と書いておいて、2行目を取得するときにJavaScriptで

var i = 1;
var data = document.getElementById('hdnProductCd_' + i).value;

とすると取得できます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
取得することができました!!

お礼日時:2007/03/31 22:04

気持ち悪いですね、名前の付け方が。


(前に逆切れされたことがあるので察してくださいな)
    • good
    • 0

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