отправка формы в jquery - не работает на firefox - PullRequest
1 голос
/ 05 января 2012

Попытка создать и отправить форму в вызове javascript. Этот код прекрасно работает в Chrome, но не в Firefox и IE. Сначала я получаю значения из вызова Ajax (JSON), а затем отправляю их в виде

$('<form name="acsform" action="' + JSONobject.formacsurl +'" method="POST">' + 
  '<input type="hidden" name="PaReq" value="' +JSONobject.formpareq + '">' +
  '<input type="hidden" name="TermUrl" value="'+ JSONobject.formtermUrl +'">' + 
  '<input type="hidden" name="MD" value="'+ JSONobject.formmd +'">' +
  '</form>').submit();

Есть идеи?

Просто чтобы добавить ... когда я предупреждаю какой-то текст в строке ниже этой заявки, я получаю окно с предупреждением на экране. Может показаться, что браузер проходит через этот код нормально (возможно, даже отправляет форму), но я не перенаправлен на адрес формы action. Я также не получаю никаких ошибок JS.

Еще раз, это терпит неудачу только в Firefox и IE, Chrome делает отправку плюс штраф перенаправления.

Ответы [ 3 ]

3 голосов
/ 05 января 2012

Попробуйте этот код:

$(document).ready(function()
{
    /*
    *    IF IS APPEND, USE A ID OR CLASS
    */
    $('#X').append('<form id="myNewForm" class="myNewForm" method="post" action="">...</form>');
    $('#myNewForm').submit();

    //OR USE CLASS NAME
    $('form.myNewForm').submit();

    /*
    *    IF NOT APPEND, USE A ID OR CLASS
    */
    //USEA ID
    $('#myForm').submit();

    //USE A CLASS NAME
    $('form.my-form').submit();

    //USE A ELEMENT( ALL )
    $('form').submit();

});

Пока!

0 голосов
/ 04 июня 2018

Использовать native submit () с идентификатором.

$('<form/>', {name:"acsform", id:"acsform", method:"POST", action: JSONobject.formacsurl})
.append(
  $('<input/>', {type:"hidden", name:"PaReq", value: JSONobject.formpareq}),
  $('<input/>', {type:"hidden", name:"TermUrl", value: JSONobject.formtermUrl}),
  $('<input/>', {type:"hidden", name:"MD", value: JSONobject.formmd})
).appendTo(document.body)
$("form#acsform")[0].submit()
0 голосов
/ 23 февраля 2012

Честно говоря, я не уверен, что вопрос о стековом потоке может быть изменен путем его комментирования и разрешено ли его изменение путем ответа на ваш собственный вопрос, но на самом деле не хочу создавать новый и копировать содержимое этого

У меня есть этот код, основанный на решении от Olaf

    $('#basic-modal-content').append('<form id="acsform" name="acsform" action="' + JSONobject.formacsurl +'" method="POST">' + 
    '<input type="hidden" name="PaReq" value="' +JSONobject.formpareq + '">' +
    '<input type="hidden" name="TermUrl" value="'+ JSONobject.formtermUrl +'">' + 
    '<input type="hidden" name="MD" value="'+ JSONobject.formmd +'">' +
    '</form>');
    $('#acsform').submit();

Это отлично работало на IE, Firefox, Opera и Chrome. Но сегодня мы получили сообщение от клиента, что этот процесс не работает с его ipad. Я, к сожалению, не могу получить информацию о том, какой именно браузер он использует на этом ipad (и я сам не могу проверить ipad), но кажется, что этот кусок кода не работает. Последней операцией в журналах является операция ajax, которая создает объект JSON, а js выше запускается после получения этого JSON. Это мое предположение тогда. Знаете ли вы что-нибудь из головы, касающееся того, что отправка этой формы является проблемой в браузере ipad по умолчанию (каким бы ни был этот браузер)

...