【问题标题】:Disable Yii Validation Error Message on focus / key up - Yii2在焦点/键上禁用 Yii 验证错误消息 - Yii2
【发布时间】:2016-05-24 17:18:05
【问题描述】:

默认情况下,错误消息出现在keyup 和pressing 表单中的提交按钮之后(如果该特定属性存在任何错误)。没关系。工作得很好。

但是,是否可以在key up 上显示disable 错误消息?意味着,如果有错误消息,应该只在按下提交按钮时出现。

查看

<?php $form = ActiveForm::begin([ 'id' => 'register-form']); ?>
    <?= $form->field($model, 'first_name',['inputOptions' => ['class' => 'form-control fname','placeholder'=>'First Name']])->label(false); ?>
    .
    .
<p><?= Html::submitButton('REGISTER', ['name' => 'register-button']) ?></p>     

控制器

public function actionRegister() 
{
  $model = new Users(); // User Model
  if ($model->load(Yii::$app->request->post())) {

    // For Ajax Email Exist Validation
    if(Yii::$app->request->isAjax ) {
      Yii::$app->response->format = Response::FORMAT_JSON;
      return ActiveForm::validate($model);
    }
        .
        .
    }
}

我找到了How to disable client side validation messages of active form in Yii 2?。

$form = ActiveForm::begin(['fieldConfig' => ['template' => '{label}{input}']]);

但是,在这个答案中。错误消息既不会出现在按键上,也不会出现在按下提交按钮时。要显示错误摘要,我需要使用&lt;?= $form-&gt;errorSummary($model) ?&gt;。那么,有没有办法禁用key up 错误消息并显示错误消息,因为它只在pressing 提交按钮上显示。

【问题讨论】:

  • 尝试在活动表单属性中使用'validateOnChange' =&gt; false。
  • 谢谢@GAMITG:最后我明白了。而且,下面也发布了答案。

标签: php yii2 yii2-basic-app yii2-validation


【解决方案1】:

我在 .../widgets/ActiveForm.php 中找到。一个选项是validateOnBlur,默认设置为true。所以,我在我的表格中把它改成了false。

@Gamitg 和@Jithin:感谢您的支持。

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

现在,一切正常。

【讨论】:

    【解决方案2】:

    添加

    'enableClientValidation'=>假

    到您的表单选项:

    <?php $form = ActiveForm::begin([ 'id' => 'register-form','enableClientValidation'=>false]); ?>
        <?= $form->field($model, 'first_name',['inputOptions' => ['class' => 'form-control fname','placeholder'=>'First Name']])->label(false); ?>
        .
        .
    <p><?= Html::submitButton('REGISTER', ['name' => 'register-button']) ?></p>
    

    【讨论】:

    • 这样,它将停止所有验证并允许用户提交表单。我希望仅在提交时显示错误。
    • 嗨 @NanaPartykar 您使用 AJAX 表单提交提交的表单?
    • 没有。 @jithin。我如何发布我的控制器代码。一样的。
    猜你喜欢
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多