Jquery отправляет форму через .submit () об успехе AJAX ... как? - PullRequest
7 голосов
/ 13 июля 2011

Я пытаюсь отправить все данные формы в скрипт через AJAX, привязав функцию щелчка к кнопке отправки, установив для нее значение false, чтобы она еще не отправила форму. Как только AJAX завершится успешно, я бы хотел отправить форму, выполнив: $("#myform").submit(); Но ничего не происходит.

Все работает, кроме $("#customOrderForm").submit();

Это для оплаты Paypal. Данные формы сохраняются в сеансе, пользователи отправляют свои платежи, возвращаются на веб-сайт после успешного осуществления платежа, данные формы отправляются клиентам и компании по электронной почте.

$("#submit").click(function () {

    var thedata = $("#customOrderForm").serialize();

    $.ajax({
        type: 'POST',
        url: 'buy-custom-session.php',
        cache: false,
        data: thedata,
        beforeSend: function () {
            $('#sessionholder').append('<div class="loading"><img src="loading.gif" alt="loading..." /></div>');
        },
        success: function (data) {
            //$(".loading").detach();
            //$(".error").detach();
            //$('#sessionholder').append(data);
            $("#customOrderForm").submit();
        },
        error: function () {
            $('#sessionholder').append('<p class="error"><strong>Oops!</strong> Try that again in a few moments.</p>');
        }
    });

    return false;

});

ФОРМА HTML

<form id="customOrderForm" action="https://www.paypal.com/cgi-bin/webscr" method="post">

<!-- form fields etc -->

<input type="image" name="submit" id="submit" src="https://www.paypalobjects.com/en_AU/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" />

</form>

Нет ошибок в Firebug.

AJAX успешно выполняется.

Приветствия

1 Ответ

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

Изменить имя и идентификатор ввода изображения.

Из документации jQuery: Формы и их дочерние элементы не должны использовать входные имена или идентификаторы, которые конфликтуют со свойствами формы, такими как submit , length или method. Конфликты имен могут привести к сбивающим с толку ошибкам.

Пример: http://jsfiddle.net/doktormolle/XNMEF/

...