Форма jQuery submit () не работает в IE6? - PullRequest
29 голосов
/ 15 января 2009

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

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

Отлично работает во всех браузерах, кроме IE6.

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

Ответы [ 8 ]

63 голосов
/ 15 января 2009

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

Редактировать:

Я тестировал в некоторых других браузерах. Похоже, что эта проблема затрагивает последние версии всех основных браузеров.

  • IE - все версии
  • Firefox 4 +
  • Chrome хотя бы начиная с версии 12
  • Опера хотя бы начиная с версии 11

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

14 голосов
/ 18 марта 2009

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

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

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

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

3 голосов
/ 15 января 2009

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

2 голосов
/ 14 июля 2011

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

После некоторых испытаний и невзгод я понял, что IE не будет работать должным образом (что удивительно), если отправляемая форма не будет добавлена ​​в DOM. Итак, это было мое решение. Я надеюсь, что это поможет некоторым из вас. Пожалуйста, имейте в виду, что все мои входные данные и моя отправка были в одном контейнере. «.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;
});

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

1 голос
/ 18 марта 2009

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

0 голосов
/ 19 сентября 2012

Добавьте button в вашей форме с type="submit"

Ссылка .

0 голосов
/ 13 декабря 2011

Просто добавьте

window.setTimeout(function(){
    $("#formid").submit();
}, 300);
0 голосов
/ 08 декабря 2011
...

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

...

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...