jQuery представляет непосредственную форму висит как Mozilla и Chrome - PullRequest
0 голосов
/ 05 ноября 2010

форма не существует в DOM, она создается на лету и затем отправляется

$('<form action="http://www.google.com/" method=POST></form>').submit();

эта простая строка приводит к зависанию обоих браузеров (Mozilla даже дает окно для завершения скрипта с ошибкой «слишком много»recursion '), jQuery 1.4.2, не пробовал в IE

какие-либо идеи?

Первоначальная идея состояла в том, чтобы написать простой плагин jQuery, который принимает URL-адрес и набор параметров в карте, создаетформа и отправляет ее как POST .. не Ajaxy (важно) и уходит от этой страницы

Ответы [ 2 ]

2 голосов
/ 05 ноября 2010

Сначала добавьте в DOM.

$(function() {
    $('<div style="display: none;">'
       + '<form action="http://www.google.com/search" method="get">'
       + '<input type="hidden" name="q" value="jquery" />'
       + '</form></div>')
        .appendTo('body')
        .submit();   
});
0 голосов
/ 05 ноября 2010

Вы должны убедиться, что не для отправки на страницу, которая сама создает форму и отправляет, иначе может появиться рекурсия.Вот пример поиска по stackoverflow:

$(document.createElement('form'))
    .attr('action', 'http://stackoverflow.com/search')
    .attr('method', 'post')
    .append(
        $(document.createElement('input'))
            .attr('type', 'hidden')
            .attr('name', 'q')
            .val('jquery submit form')
    )
.appendTo('body')    
.submit();
...