3

我有一个 Yii2 ActiveFrom。

将提交按钮替换为

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

因为我需要在页面在后台处理期间显示模态叠加。(请稍等...)。

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

总是返回未定义。

即使我打电话

$("#rebates-form").data('yiiActiveForm')

在“验证”之后,“验证”元素始终为假,即使表单没有验证错误。

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

始终返回 false,即使表单已提交。

我怎样才能触发我的请等待对话框

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

仅在没有验证错误的情况下显示?

4

1 回答 1

4

以下解决方案有效:

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

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

带有 submitit 函数调用的额外按钮也可以省略,因为事件“beforeSubmit”无论如何都会触发。

仅当表单验证成功时才会触发此事件。

(参见https://github.com/yiisoft/yii2/blob/master/framework/assets/yii.activeForm.js的评论)

于 2015-10-02T13:31:41.900 回答