我使用资产添加了一些js和css文件到我的应用程序。 我的问题是,当用户单击提交按钮时,我想运行某些功能,但只有在yii验证器检查后才会出现错误。 现在我的函数在yii验证器之前运行。
我该怎么做?
答案 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.
}