FireFoxにappendChildでinput要素を追加
FireFoxでJavaScriptを使い,Input要素をappendChildで”Form”で囲まれた範囲に追加した場合、
FireFoxでは追加したInput要素について、パラメータが受け渡されません。
IE6,IE7では後から追加したものについても、パラメータが送信先へ受け渡されます。
状況
- 追加したinput要素は、見た目には正しく追加表示される。
- Formから対象へ追加要素のパラメータが送信されない。
- IE6、IE7では追加要素について、送信される。
原因
- IEでは、Form送信の際、動的に追加された要素について再認識してから送っている
- FireFox、(Gekkoエンジン)では再認識されない為。
現状、ブラウザエンジンの仕様ってことですね。
解決策
- FireFoxにForm送信時、再評価させることは、多分できない
- input要素、追加時にこちらからappendChildで評価(要素追加をブラウザに通達)させる
function add_object(){
if (navigator.userAgent.indexOf('MSIE') == -1) {
// IE以外のブラウザ用
// 指定タグでのエレメント作成
new_obj = document.createElement("input");
new_obj.setAttribute("type", "text");
new_obj.setAttribute("name", "hoge");
new_obj.setAttribute("value", "hogehoge");
// appendChildで指定要素へ子要素追加
document.getElementById("add_test").appendChild(new_obj);
} else {
od1 = document.getElementById("add_test");
od1.innerHTML = od1.innerHTML + '
<input name="hoge" type="text" value="hogehoge" />';
}
}
関連リンク
関連するエントリー
- None Found
