Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在我的js文件之前运行yii表单验证_Javascript_Jquery_Yii2 - Fatal编程技术网

Javascript 如何在我的js文件之前运行yii表单验证

Javascript 如何在我的js文件之前运行yii表单验证,javascript,jquery,yii2,Javascript,Jquery,Yii2,我使用资产向我的应用程序添加了一些js和css文件。 我的问题是,我想在用户单击submit按钮时运行一些函数,但只有在yii validator检查无错误后才能运行。 现在我的函数在yii验证器之前运行 如何执行此操作?在所有验证之后和提交之前,将触发beforeSubmit事件: $('#formid').on('beforeSubmit', function(e) { // Do your things if (cannotSubmitBecauseOfProblem)

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


如何执行此操作?

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

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

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

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

您可以使用
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);

您可以使用
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);

你能给我们看一些代码吗?其他人回答。无论如何谢谢你!你能给我们看一些代码吗?其他人回答。无论如何谢谢你!嗨,谢谢,但我试着做的是加载轮子,如果我做了你发布的事情,在我开始填写表格后它就开始了。为什么?答案更新了。您可以使用上述任何适合您的方法。我认为您应该在验证后或提交前尝试:)您好,谢谢,但我尝试做的是加载轮子,如果我做了您在我开始填写表单后立即发布的操作。为什么?答案更新了。您可以使用上述任何适合您的方法。我认为您应该在验证之后或提交事件之前尝试:)