簡體   English   中英

使用Yii 2提交兩次Ajax表單

[英]Ajax form submitting twice with Yii 2

我環顧四周,其他類似的帖子都沒有幫助過我。 我在Yii 2jQuery構建了一個基於AJAx的表單,似乎它提交了兩次表單。

我的表格:

$form = ActiveForm::begin([
    'id' => 'company_form',
    'ajaxDataType' => 'json',
    'ajaxParam' => 'ajax',
    'enableClientValidation' => false
]);

我的JS代碼:

$(document).ready(function() {

    /* Processes the company signup request */

    $('#company_form').submit(function() {
        signup('company');
        return false;
    }); 

})

function signup(type) {

    var url;

    // Set file to get results from..

    switch (type) {
        case 'company':
            url = '/site/company-signup';
            break;
        case 'client':
            url = '/site/client-signup';
            break;
    }

    // Set parameters
    var dataObject = $('#company_form').serialize();

    // Run request  

    getAjaxData(url, dataObject, 'POST', 'json')

        .done(function(response) {

            //.........

        })

        .fail(function() {
            //.....
        });

    // End

}

我不應該通過return: false;標准提交停止return: false; 在JavaScript代碼?

為什么要提交兩次?

更多信息:然而奇怪的是,這似乎只是第一次發生; 如果我再次點擊提交它只提交一次; 但如果我重新加載頁面並點擊提交,它將再次執行兩次。

您可能需要更改以下代碼:

$('#company_form').submit(function(e) {
    e.preventDefault();
    e.stopImmediatePropagation();
    signup('company');
    return false;
}); 

http://api.jquery.com/event.stoppropagation/

http://api.jquery.com/event.stopimmediatepropagation/

解決方案常見

下一個JS將適用於任何'enableClientValidation'狀態:

$('#company_form').on('beforeSubmit', function (e) {
    signup('company');
    return false;
}); 

https://yii2-cookbook.readthedocs.io/forms-activeform-js/#using-events

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM