2015-10-02 70 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