2016-05-24 25 views
2

默認情況下,出現錯誤消息keyuppressing在窗體中提交按鈕(如果該特定屬性存在任何錯誤)。哪個好。工作得很好。在焦點/鍵上禁用Yii驗證錯誤消息 - Yii2

但是,有沒有可能disable錯誤消息key up?手段,錯誤信息,如果有的話,只應按下提交按鈕。

查看

<?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}']]); 

但是,在這個答案。錯誤信息既沒有出現在鍵上,也沒有按下提交按鈕。要顯示錯誤摘要,我需要使用<?= $form->errorSummary($model) ?>。那麼,有什麼辦法可以禁用key up錯誤信息並顯示錯誤信息,因爲它僅在pressing提交按鈕之前顯示。

+0

嘗試在活動窗體屬性中使用「validateOnChange」=> false。 – GAMITG

+0

謝謝@GAMITG:tlast我明白了。並且,也發佈了以下答案。 –

回答

4

發現... /部件/ ActiveForm.php。一種選擇是validateOnBlur,它默認設置爲true。所以,我把它改成了false

@Gamitg & @Jithin:感謝您的支持。現在

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

,它的正常工作。

1

添加

'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> 
+0

Hi @Jithin。我已經試過了。但是,沒有它沒有奏效。 –

+0

通過這種方式,它將停止所有驗證並允許用戶提交表單。我想只在提交時顯示錯誤。 –

+0

Hi @NanaPartykar您的表單使用AJAX表單提交提交? – jithin