30

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

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

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

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

4

8 に答える 8

64

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

編集:

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

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

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

于 2009-01-15T07:38:58.253 に答える
14

I had a similar problem when I was about to submit the form via an A-element. I had set the href attribute to "javascript:;" to let the main jQuery script handle the actual submit but it just wouldn't work in IE6.

jQuery main script:

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

My solution was to change the href attribute from "javascript:;" to "#".

于 2009-03-18T14:57:33.153 に答える
3

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

于 2009-01-15T07:28:32.067 に答える
2

私は最近、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;
});

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

于 2011-07-14T13:34:10.917 に答える
1

false を返すことを忘れないでください。あなたがタグにいる場合

于 2009-03-18T02:19:00.107 に答える
0

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

参照

于 2012-09-19T19:58:03.173 に答える
-1
...

$('.bt_ok').bind('click', function() {
    $('#form_autosuggest').submit();
    return false;
});

...

後に追加: return false;IE6 の場合

于 2011-12-08T10:37:42.047 に答える
-1

追加するだけ

window.setTimeout(function(){
    $("#formid").submit();
}, 300);
于 2011-12-13T15:53:17.323 に答える