2016-05-24 12 views
2

デフォルトでは、エラーメッセージはkeyupにあり、pressingボタンをフォームに送信します(その特定の属性にエラーがある場合)。どちらが良いですか?完全に正常に動作します。フォーカス/キーアップ時の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。 1つのオプションはvalidateOnBlurで、これはデフォルトでtrueに設定されています。だから私はfalseに変更しました。

@Gamitg & @Jithin:Thanks For Your Kind Support。

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

さて、それは正常に動作しています。

1

フォームオプションに

'enableClientValidation' => falseを

追加:

<?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

こんにちは@Jithin。私はすでにこれを試しました。しかし、いいえ、それは働かなかった。 –

+0

このようにして、すべての検証が中止され、ユーザーはフォームを送信できます。私は、提出時にのみエラーを表示したかったのです。 –

+0

こんにちは@NanaPartykarあなたのフォームはAJAXフォームの提出を使用して提出しますか? – jithin

関連する問題