在yii2驗證以前執行一些額外自定義驗證
第一種php
- <?php
- $js = <<<JS
- $("#button").click(function(e){
- if(驗證規則){
$("form#{$model->formName()}").submit();
}else{
return false;
}
- })
- JS;
- $this->registerJs($js);
第二種web
- <?php
- /**
- * User: yiqing
- * Date: 14-9-15
- * Time: 下午12:09
- */
-
- namespace common\widgets;
-
- use yii\web\View ;
- use yii\widgets\Block ;
-
- class JsBlock extends Block{
-
- /**
- * @var null
- */
- public $key = null;
- /**
- * @var int
- */
- public $pos = View::POS_END ;
- /**
- * Ends recording a block.
- * This method stops output buffering and saves the rendering result as a named block in the view.
- */
- public function run()
- {
- $block = ob_get_clean();
- if ($this->renderInPlace) {
- throw new \Exception("not implemented yet ! ");
- // echo $block;
- }
- $block = trim($block) ;
- /*
- $jsBlockPattern = '|^<script[^>]*>(.+?)</script>$|is';
- if(preg_match($jsBlockPattern,$block)){
- $block = preg_replace ( $jsBlockPattern , '${1}' , $block );
- }
- */
- $jsBlockPattern = '|^<script[^>]*>(?P<block_content>.+?)</script>$|is';
- if(preg_match($jsBlockPattern,$block,$matches)){
- $block = $matches['block_content'];
- }
-
- $this->view->registerJs($block, $this->pos,$this->key) ;
- }
- }
- <?php JsBlock::begin() ?>
- <script>
- $(function () {
- jQuery('form#apitool').on('beforeValidate', function (e) {
- if(驗證規則){
//不用執行什麼操做,自動會提交
}else{
return false;
}
- });
- </script>
- <?php JsBlock::end() ?>
歡迎關注本站公眾號,獲取更多信息