「jQuery」IEだとselectタグにname属性が設定できない
現在、動的にselectタグを追加するページを作成しているのだがattr関数でname属性を追加するとIEの挙動がおかしい。
■現象
まずjavascript(jquery1.3.2)
$select_append = $('<select>').attr("id", "idA").attr("class", "classA").attr("name","nameA"); $select_append.append($("<option>").attr("value", "").attr("label", "labelA").text("textA")); //divに追加 $("#testA").append($select_append); alert($("#testA").html);
HTMLは空DIVを配置のみ
<body> <div id="testA" /> </body>
上記のscriptを動かすとわかりますがalert()で値というか属性が見えないです。
ちなみにID:idAを最後に指定してname属性を指定するとattr関数でidAを指定すれば設定されていることが確認できます。
ただし、testA自体を.htmlで表示してもやはり設定されていません。
IE以外のメジャーなブラウザでは全て問題なし。
一応、暫定対策として以下でカバー
$select_append = $('<select name="testA"></select>'); $select_append.attr("id", "idA").attr("class", "classA").attr("name","nameA"); $select_append.append($("<option>").attr("value", "").attr("label", "labelA").text("textA")); //divに追加 $("#testA").append($select_append); alert($("#testA").html);
どうも「name」という名前がダメみたい。適当に「namea」とかすればうまくいく。