web-dev-qa-db-ja.com

jQueryフォームsubmit()がIE6で機能していませんか?

以下のようにjqueryを使用してを送信したいと思います。

$("#formid").submit();

IE6を除くすべてのブラウザで完璧に動作します。

IE6で動作させる方法は??

29
Prashant

あなたはおそらく<input name="submit" />フォームのどこかにあり、IEのフォームの「送信」機能を上書きします。

編集:

私は他のいくつかのブラウザでテストしました。すべての主要なブラウザの最新バージョンがこの問題の影響を受けているようです。

  • IE-すべてのバージョン
  • Firefox4以降
  • 少なくともバージョン12以降のChrome
  • 少なくともバージョン11以降のOpera

結論:入力に「submit」、またはフォーム要素の他のデフォルトのプロパティやメソッド(「action」や「reset」など)という名前を付けないでください。完全な概要については、 [〜#〜] mdc [〜#〜] を参照してください。

63
I.devries

A要素を介してフォームを送信しようとしたときに同様の問題が発生しました。 href属性を「javascript :;」に設定しました。メインのjQueryスクリプトに実際の送信を処理させますが、IE6では機能しません。

jQueryメインスクリプト:

$(".submitLink").click(function(){
$(this).parent()[0].submit();
$(this).addClass("loading");
});

私の解決策は、href属性を「javascript :;」から変更することでした。 「#」に。

14
Kim

$("#formid").trigger("submit")を試すこともできますが、別の結果が得られるとは思えません。

3
Sophie Alpert

最近、同様の問題が発生しました。ASP.NETサーバーフォーム内に「疑似フォーム」を作成していたため(別のフォームタグを使用できませんでした)、書き込みを行わずに別のドメインに投稿したいと考えていました。リモート投稿を行うためのサーバー側コード。簡単な答え-その場でフォームを作成して送信します。良いブラウザで動作します...

いくつかの試行錯誤の末、送信されているフォームがDOMに追加されない限り、IEは期待どおりに機能しない(なんと驚き))ことに気付きました。これが私の解決策でした。皆さんのお役に立てば幸いです。すべての入力と送信が同じコンテナに含まれていることに注意してください。「。post-to」は、URLを含む非表示の入力です。

$(".post-form").click(function(ev) {

    var postto = $(this).siblings(".post-to").val();    
    var form = document.createElement("form")
    $(form).attr("id", "reg-form").attr("name", "reg-form").attr("action", postto).attr("method", "post").attr("enctype", "multipart/form-data");

    $(this).siblings("input:text").each(function() {
        $(form).append($(this).clone());
    });

    document.body.appendChild(form);
    form.submit();
    document.body.removeChild(form);

    return false;
});

最終的に、それは御馳走になります。

2
Tommy W

Falseを返すことを忘れないでください。タグを付けている場合

1
Simon

type="submit"を使用してフォームにbuttonを追加します

参照

0
Leif Gruenwoldt