WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:JavaScriptにおけるコントロール名としての[]の利用

0:[投稿] けい [2004/10/25 13:34 ][環境:IE6 全般]

PHPで配列として使用するために、checkboxに
cb[1]、cb[2]、cb[3] という名前を付けております。
このcheckboxをJavaScriptで"checked"にしようとしまして、
document.form.cb[1].checked = true
としますと、インタプリタに配列として認識されてしまいます。
コントロール名として[]を使用する方法についてご存知でしたら
ご教示願います。


1:[回答] andi [2004/10/25 17:23 ]

> alert(document.forms[0].elements["hoge[1]"].value);

elementsを使用すれば可。

但しそれ以前にname属性に[]は使用不可。
http://www.w3.org/TR/html401/types.html#type-cdata


2:[質問] けい [2004/10/25 17:49 ]

andi様ありがとうございました。とりあえずできるようになりました。
「name属性への[ ]の使用不可」ですが、PHPで配列として扱うための、W3Cに準拠した方法がありましたらご教示いただけますでしょうか。


3:[回答] [2004/10/25 19:31 ]

>>1
> 但しそれ以前にname属性に[]は使用不可。
CDATAですよ?文書文字集合中の文字なら何でも使えるのでは。
引用先の文章に[]が使えないなんてことは書いてません。

> the specification imposes further constraints ....
とはあるものの、仕様書はinputのname属性については
単に"control name"としているだけで、
control nameとして使用可能な文字の追加制限に関する記述は
見当たらないように思います。


4:[完了] けい [2004/10/27 11:37 ]

皆様、ご対応ありがとうございました。
とりあえず、PHPでフォーム変数を配列で受け取る方法は"[ ]"を
使用するしかなさそうですので、この方法で進めることにします。


5:[完了] andi [2004/10/27 12:58 ]

> ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

IDおよびNAMEトークンはアルファベットで開始し、任意の文字数の数字、ハイフン、アンダースコア、コロン、ピリオドで記述しなければならない。


6:[完了] andi [2004/10/27 13:04 ]

最初のリンクをここに貼っておけば良かったですね。

http://www.w3.org/TR/html401/types.html#type-id


7:[完了] ぽぽ [2004/10/27 14:20 ]

>6

いや、>3 氏が言っているのは、input 要素の name 属性は ID/NAME ではなく CDATA である、ということですよね。
http://www.w3.org/TR/html401/interact/forms.html#h-17.4

CDATA である以上、name 属性値で使用できる文字に制限はなく、必要なら日本語文字すら使用できます(使う人がいるかどうかはともかく)。


8:[完了] andi [2004/10/27 14:56 ]

今までnameもidもID and NAMEに含まれると信じてました。
で、色々と調べて結局DTDでもidはID、nameはCDATAになっているのを確認しました。

http://www.w3.org/TR/html4/strict.dtd

どうもお騒がせしました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World