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