禁用焦点键上的验证错误消息

默认情况下,如果未满足任何验证限制,则在 keyUp 上的 <div class="help-block"></div> 中的 textbox 下方或按下提交按钮后会显示错误消息。

有时我们只想提交一条消息,即在 onKeyup 事件中没有验证。

我们来看看 yii2/widgets/ActiveForm.php 文件:

<?php

namespace yii\widgets;

use Yii;
use yii\base\InvalidCallException;
use yii\base\Widget;
use yii\base\Model;
use yii\helpers\ArrayHelper;
use yii\helpers\Url;
use yii\helpers\Html;
use yii\helpers\Json;

class ActiveForm extends Widget
{
  public $action = '';
  public $method = 'post';
  public $options = [];
  .
  .
  .
  public $validateOnSubmit = true;
  public $validateOnChange = true;
  public $validateOnBlur = true;
  public $validateOnType = false;
  
  .
  .
  .
  
}

在那里我们看到 $validateOnBlur 默认设置为 true。更改框架文件是一件非常糟糕的事情,因此我们需要在使用表单时覆盖它:

<?php $form = ActiveForm::begin([ 'id' => 'register-form','validateOnBlur' => false]); ?>