我在同一页面中使用相同的模型有两个注册表单。两个表单都有相同的字段,如下,
1.username 2.password 3.repeatPassword
表单1工作正常,但表单2比较验证无法正常工作。当我输入repeatPassword是正确的时候它总是返回错误信息然后它也返回错误信息。我认为问题是字段ID,因为当我在其工作时输入form1密码字段和form2 repeatPassword字段时。
型号规则:
[['repeatPassword'], 'required','message' => 'Please re-enter the Password','on' => ['register']],
[['repeatPassword'], 'compare', 'compareAttribute' => 'password', 'message' =>'Please re-enter the password.This is to check that you have not mistyped any characters '],
更新
查看
<?php $form = ActiveForm::begin([
'id' => 'student-register-form',
'action'=>['user/student-register'],
'enableAjaxValidation' => true,
'options' => ['class' => 'form-horizontal'],
'fieldConfig' => [
'template' => "{label}\n<div class=\"col-lg-12\">{input}</div>",
'labelOptions' => ['class' => 'col-sm-5 control-label'],
],
]); ?>
<?= $form->errorSummary($user, ['header' => '']); ?>
<?= $form->field($user, 'username')->textInput(['placeholder'=>'Username'],['style'=>'text-indent:20px;'])->label(false)?>
<?= $form->field($user, 'password')->passwordInput(['placeholder'=>'Password'])->label(false) ?>
<?= $form->field($user, 'repeatPassword')->passwordInput(['placeholder'=>'ConfirmPassword'])->label(false) ?>
<?= $form->field($user, 'acceptTerms')->checkBox()->label("I agree with the <a href='#'>Terms & Conditions<a/>") ?>
<?= $form->field($user, 'role')->hiddenInput(['value'=>1]);?>
<div class="form-group">
<div class="col-lg-12 register-button mrgT-15">
<?= Html::submitButton(Yii::t('user', 'Register'), ['class' => 'btn btn-primary submit-register']) ?>
</div>
</div>
这是form1和form2也是相同的设置,只有formid,隐藏的输入值和表单动作是不同的。并且控制器动作也是相同的代码呈现形式并处理发布请求。
注意:两种表单都是在主布局中呈现。