daily dayflower

2007-04-09

jQuery の submit() ではまった

jQuery の Ajax でフォームのバリデーションをして,オッケーなら submit するようなコード書いてたんですが,

$('#button_submit').click(
    function () {
        $.ajax({
            type: 'POST',
            url:  'バリデータ',
            success:
                function () {
                    $('#form_main').submit();
                    return;
                }
        });

        return false;
    }
);

コードはあくまで雰囲気程度です。

いろんなブラウザでテストしてうまくいってたので本番にもデプロイしたんですが,上司の使っている IE 6 でだけなぜかうまくいかなかった罠。他の人の IE なら OK なのに。

submit()

Trigger the submit event of each matched element. This causes all of the functions that have been bound to thet submit event to be executed.

Note: This does not execute the submit method of the form element! If you need to submit the form via code, you have to use the DOM method, eg. $("form")[0].submit();

いまひとつわかんないんですが,たぶん,$(...).submit() だと submit イベントハンドラだけ実行するだけだから,ほんとに submit したけりゃ

                    $('#form_main')[0].submit();

とかしろってことかいな。んで,そのようにしたらうまくいきました。

なぜ環境依存がおきたのかは未だに謎。つーか他の環境でうまくいっていたことのほうが不思議な気がします。英語 or JS 得意な人に教えてほしいです。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/dayflower/20070409/1176112630