2015-10-02 104 views
2

我有一個Yii2 ActiveFrom。Yii2客戶端表單驗證

<button class="btn <?= $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ?>" 
      onclick="submitit();return false;"> 
     <?= $model->isNewRecord ? 'Create' : 'Update' ?> 
    </button> 

替換提交按鈕,因爲我需要在頁面是後臺處理的時間顯示覆蓋模式。 (請稍候...)。

$('#rebates-form').yiiActiveForm('validate') 

總是返回undefined。

即使我打電話

後「驗證」的「驗證」元素永遠是假的,就算形態不具有驗證錯誤。

$('#rebates-form').yiiActiveForm('submitForm') 

總是返回false,即使表單已提交。

我怎麼能觸發我請稍候對話框

$('#pleaseWaitDialog').modal('show'); 

,只顯示在sumbiting的從沒有驗證錯誤的事件?

回答

3

了以下解決方案工作:

$(document).ready(function() { 
    $("#rebates-form").on("beforeSubmit", function (event, messages) { 
     $('#pleaseWaitDialog').modal('show'); 
     return true; 
    }); 
}); 

function submitit(element) { 
    $('#rebates-form').yiiActiveForm('submitForm') 
} 

凡多餘的按鈕witht的submitit函數調用也被排除在外,因爲事件「beforeSubmit」反正會觸發。

此事件只有在表單驗證成功時纔會觸發。

(看評論https://github.com/yiisoft/yii2/blob/master/framework/assets/yii.activeForm.js

+0

非常感謝。 – bamossza