memo.xight.org

日々のメモ

JavaScriptにおけるコントロール名としてのブラケット (大括弧) の利用

Summary

PHP で フォームの値を配列として受け取りたい場合,
以下のように記述するが,JavaScript で値を受け取る場合にちょっと面倒.
<input name="hoge[]" />
<input name="hoge[]" />


name が hoge[0],hoge[1] ... の場合

<input name="hoge[0]" />
<input name="hoge[1]" />


JavaScript で hoge[1] の値を取得したい.
以下の場合,配列として認識されてしまう.
document.forms[0].hoge[1].value;


elements を用いて解決.
document.forms[0].elements["hoge[1]"].value;


name が hoge[],hoge[] ... の場合

<input name="hoge[]" id="hoge0" />
<input name="hoge[]" id="hoge1" />


JavaScript で hoge[1] の値を取得したい.
getElementById を用いて解決.
document.getElementById('hoge1').value;


elements を用いて解決.
document.forms[0].elements[1].value;


Reference

Web相談室 - JavaScriptにおけるコントロール名としての[]の利用
http://www.parkcity.ne.jp/~chaichan/qanda/qa5517.htm

PHP マニュアル - 第71章 PHPとHTML - 3. HTMLフォームで配列を使用するにはどうすればよいですか?
http://php.s3.to/man/faq.html.html#faq.html.arrays

W3C Recommendation - HTML4.01 - Basic HTML data types - CDATA
http://www.w3.org/TR/html401/types.html#type-cdata

W3C Recommendation - HTML4.01 - Forms in HTML documents - The INPUT element
http://www.w3.org/TR/html401/interact/forms.html#h-17.4