форма jQuery submit () не работает в IE6?

Я хочу отправить с помощью jquery, как показано ниже;

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

его работа идеально подходит во всех браузерах, кроме IE6.

Как заставить его работать в IE6 ??

8 ответов


у вас, вероятно, есть <input name="submit" /> где-то в вашей форме, которая перезаписывает функцию "Отправить" формы в IE.

Edit:

Я тестировал в некоторых других браузерах. Эта проблема затрагивает последние версии всех основных браузеров.

  • IE-все версии
  • Firefox 4+
  • Chrome по крайней мере с версии 12
  • Opera по крайней мере с версии 11

итог: никогда не называйте входные данные " отправить "или любое другое свойство или метод по умолчанию элемента формы (например," действие "или" сброс"). См.MDC для полного обзора.


У меня была аналогичная проблема, когда я собирался отправить форму через A-элемент. Я установил атрибут href в " javascript:;", чтобы основной скрипт jQuery обрабатывал фактическую отправку, но он просто не работал в IE6.

основной скрипт jQuery:

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

моим решением было изменить атрибут href с " javascript:; "на"#".


можно попробовать $("#formid").trigger("submit"), хотя я сомневаюсь, что это даст вам другой результат.


недавно у меня была аналогичная проблема, когда я создавал "псевдо-форму" внутри ASP.NET серверная форма (поэтому я не мог использовать другой тег формы), который я хотел опубликовать в другом домене без необходимости писать серверный код для удаленной публикации. Простой ответ-создайте форму на лету и отправьте ее. Работает в хороших браузерах...

после некоторых испытаний и невзгод я понял, что 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;
});

в конце концов, это работает удовольствие.


Не забудьте вернуть false; если вы находитесь на теге


добавить button в форме type="submit"

ссылка.


добавить

window.setTimeout(function(){
    $("#formid").submit();
}, 300);

...

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

...

добавить после: return false; для IE6