FireFoxにappendChildでinput要素を追加
FireFoxでJavaScriptを使い,Input要素をappendChildで”Form”で囲まれた範囲に追加した場合、
FireFoxでは追加したInput要素について、パラメータが受け渡されません。
IE6,IE7では後から追加したものについても、パラメータが送信先へ受け渡されます。
状況
- 追加したinput要素は、見た目には正しく追加表示される。
- Formから対象へ追加要素のパラメータが送信されない。
- IE6、IE7では追加要素について、送信される。
原因
- IEでは、Form送信の際、動的に追加された要素について再認識してから送っている
- FireFox、(Gekkoエンジン)では再認識されない為。
現状、ブラウザエンジンの仕様ってことですね。
解決策
- FireFoxにForm送信時、再評価させることは、多分できない
- input要素、追加時にこちらからappendChildで評価(要素追加をブラウザに通達)させる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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