裏紙に書く程度の内容

IEで動的に追加したformがsubmitできない

jqueryでボタンクリック時などのイベントにより後から追加したフォームをサブミットしたいんだけど、IEではうまくいかない件。

問題の状況

何かイベント発生時にformを動的に作成してsubmitさせたい。
言葉で説明するよりコード見た方がわかりやすいかも。

$("#button").bind("click", function() {
    $("
").attr("action", "/example").attr("method", "post").submit(); });

これはchromeやfirefoxなら動くんだけど、IEだと動かない。

IEでは、HTMLの中の要素じゃないとサブミットしないっぽい。バグっていうかそういう仕様。かな?

修正方法

これでいける!

$("#button").bind("click", function() {
  $("").attr("action", "/example").attr("method", "post").appendTo("body").submit().remove();
});

メイクしたフォームをボディーにトゥギャザーしてサブミット、そのあとすぐに消す、って感じです。

参考:http://qiita.com/w650/items/38c3f58b56d7ffe82eab

Index