2017-01-02 9 views
-1

yii2アクティブフォームで検証がトリガされたかどうかを確認するにはどうすればよいですか? 私は使用していますyii2フォーム検証が動作しない

$('#formId').yiiActiveForm('validate', true); 

フォームを検証するのに、常にundefinedを返します。

+2

[yii2でjsのアクティブなフォーム検証]の可能な重複(http://stackoverflow.com/questions/41422316/js-active-form-validation -in-yii2) –

+0

'options'を' TRUE'として渡したのはなぜですか? –

+0

両方の質問が異なります。慎重に読む。シナリオだけがフォーム検証と同じです... @ YasarArafath –

答えて

0

あなたVIEWファイル

では、あなたのビューファイルに入力された名前のようなFIRST_NAME

public function rules() 

    { 
     return [ 

      [['first_name', 'last_name', 'email_address','city','contact_phone', 'Address', 'date_created'], 'required'], 

      ['contact_phone', 'unique'], 

      ]; 

    } 

、例えばあなたのMODEL

をお試しください

<div class="form-group" > 

<?= Html::activeLabel($model, 'first_name', ['class'=>'control-label col-sm-3']); ?> 

<div class="col-sm-6"> 

<?= Html::activeTextInput($model, 'first_name',['class' => ['form-control']]); ?> 

<?= Html::error($model, 'first_name',['style' => 'color:red;']); ?> 

</div> 

</div> 
1

トリガーフォームの検証は、この試してみてください。

var $form = $("#formId"), 
    data = $form.data("yiiActiveForm"); 
$.each(data.attributes, function() { 
    this.status = 3; 
}); 
$form.yiiActiveForm("validate"); 

を私はJavaScriptでアクティブなフォームの検証に関数を作成しましたが、それは真/偽を返すとなります。多分便利:

function checkForm(form_id){ 
    var $form = $("#"+form_id), data = $form.data("yiiActiveForm"); 
    $.each(data.attributes, function() { 
     this.status = 3; 
    }); 
    $form.yiiActiveForm("validate"); 
    if ($form.find('.has-error').length == 0) { 
     return true; 
    } 
    return false; 
} 

はそれを呼び出す:

checkForm("formId"); // it will be return true/false and also validating the form 
関連する問題