Yii2客户端表单验证

时间:2015-10-02 03:21:01

标签: jquery yii2 active-form

我有一个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')

始终返回undefined。

即使我打电话

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

验证&#39; &#34;验证&#34;即使表单没有验证错误,元素也始终为false。

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

总是返回false,即使表单已提交。

如何触发我的请等待对话

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

只有在没有验证错误的情况下才会显示?

1 个答案:

答案 0 :(得分:3)

以下解决方案正在运行:

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

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

如果提交函数调用的额外按钮也可以省略,因为事件&#34; beforeSubmit&#34;无论如何都会触发。

只有在表单验证成功时才会触发此事件。

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