ホーム > ブラウザ > FireFoxにappendChildでinput要素を追加

FireFoxにappendChildでinput要素を追加

2008 年 3 月 17 日

FireFoxにappendChildでinput要素を追加

FireFoxでJavaScriptを使い,Input要素をappendChildで”Form”で囲まれた範囲に追加した場合、
FireFoxでは追加したInput要素について、パラメータが受け渡されません。
IE6,IE7では後から追加したものについても、パラメータが送信先へ受け渡されます。

状況

  1. 追加したinput要素は、見た目には正しく追加表示される。
  2. Formから対象へ追加要素のパラメータが送信されない。
  3. IE6、IE7では追加要素について、送信される。

原因

  1. IEでは、Form送信の際、動的に追加された要素について再認識してから送っている
  2. FireFox、(Gekkoエンジン)では再認識されない為。

現状、ブラウザエンジンの仕様ってことですね。

解決策

  1. FireFoxにForm送信時、再評価させることは、多分できない
  2. 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" />';
}
}

関連リンク

Visual Components Systems

関連するエントリー

    None Found

ブラウザ , ,

  1. コメントはまだありません。
  1. トラックバックはまだありません。