0

重複の可能性:
送信フォームがjqueryajax呼び出しで停止しない

私はフォームを持っています:

<form id="orderForm" onsubmit="return prepareOrder(this);" action='@ConfigurationManager.AppSettings["EpayLogonUrl"]' method="POST">

そしてprepareOrder機能:

function prepareOrder(form) {
    $('.wizard_next_step').attr('disabled', 'disabled');
    $('.wizard_next_step').addClass('disabled');
    $('.wizard_prev_step').attr('disabled', 'disabled');
    $('.wizard_prev_step').addClass('disabled');       

    $.ajax({
        type: 'POST',
        url: '/Pay/CreateOrder',
        success: function (response) {
            if (response.IsSuccess) {
                alert('2');
                $("input[type=hidden][name=Signed_Order_B64]").val(response.Message);
            } else {
                alert('1');
                toastr.options.timeOut = 10000;
                toastr.info(response.Message);
                return false;
            }
        },
        error: function () {
            return false;
        },
        async: false
    });
}

その送信の問題は、IsSuccessfalseに等しいときに停止しません。テストのために、アラートとアラートショーを正しく挿入します(1)が、とにかくフォームを送信します。問題はどこにありますか?

4

1 に答える 1

2

ajax呼び出しはfalseを返しますが、prepareOrderメソッドはそうではありません。ajax呼び出しの外でfalseを返してみてください。

function prepareOrder(form) {
    $('.wizard_next_step').attr('disabled', 'disabled');
    $('.wizard_next_step').addClass('disabled');
    $('.wizard_prev_step').attr('disabled', 'disabled');
    $('.wizard_prev_step').addClass('disabled');       

    $.ajax({
        type: 'POST',
        url: '/Pay/CreateOrder',
        success: function (response) {
            if (response.IsSuccess) {
                alert('2');
                $("input[type=hidden][name=Signed_Order_B64]").val(response.Message);
            } else {
                alert('1');
                toastr.options.timeOut = 10000;
                toastr.info(response.Message);
                return false;
            }
        },
        error: function () {
            return false;
        },
        async: false
    });

    return false;    
}
于 2012-09-10T06:02:57.090 に答える