如何在我的js文件

时间:2015-06-09 08:40:05

标签: javascript jquery yii2

我使用资产添加了一些js和css文件到我的应用程序。 我的问题是,当用户单击提交按钮时,我想运行某些功能,但只有在yii验证器检查后才会出现错误。 现在我的函数在yii验证器之前运行。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以使用afterValidateAttribute。请尝试以下方法:

$position = View::POS_END;
$validatejs = <<< JS
        $('#formID').on('afterValidateAttribute', function(event, attribute, messages) {
            if(messages.length == 0){
                 // No errors ... 
            }
        });
        JS;
        $this->registerJs($validatejs, $position);

更新:

$('#formID').on('beforeValidate', function (event, messages, deferreds) {
    // called when the validation is triggered by submitting the form
    // return false if you want to cancel the validation for the whole form
}).on('beforeValidateAttribute', function (event, attribute, messages, deferreds) {
    // before validating an attribute
    // return false if you want to cancel the validation for the attribute
}).on('afterValidateAttribute', function (event, attribute, messages) {
    // ...
}).on('afterValidate', function (event, messages) {
    // ...
}).on('beforeSubmit', function () {
    // after all validations have passed
    // you can do ajax form submission here
    // return false if you want to stop form submission
});

答案 1 :(得分:1)

beforeSubmit事件在所有验证之后和提交之前触发:

$('#formid').on('beforeSubmit', function(e) {
   // Do your things
   if (cannotSubmitBecauseOfProblem)
      e.result = false; // Prevent form submission.
}