YII2 on blur Ajax 验证不工作
YII2 on blur Ajax validation not working
我正在尝试验证我的 YII2 更改密码表单。但是我在模糊验证上停留在 YII2 上。
<?php
use yii\bootstrap\ActiveForm;
use yii\helpers\Html;
?>
<?php
$form = ActiveForm::begin([
'id' => 'change-password',
'action' => $action,
'enableAjaxValidation' => true
]);
?>
<?php echo $form->field($model, 'old_password')->label(false)->passwordInput(['placeholder' => 'Your Old Password', 'class' => 'form-control']); ?>
<?php echo $form->field($model, 'new_password')->label(false)->passwordInput(['placeholder' => 'Your New Password', 'class' => 'form-control']); ?>
<?php echo $form->field($model, 'confirm_password')->label(false)->passwordInput(['placeholder' => 'Confirm Your New Password', 'class' => 'form-control']); ?>
<?php echo Html::submitButton('Submit', array('class' => 'btn btn-primary')); ?>
<?php ActiveForm::end(); ?>
谁能告诉我我做错了什么?
仅将其包含在 ActiveForm
配置中是不够的。
可以发送请求,但表单将保持不变。
您还应该准备您的控制器(在 CRUD 生成的控制器中它们是 create
和 update
,在您的情况下它可以只有一个 - 负责更新密码)到 return 正确的 JSON 数据以防 AJAX 请求。
在 official documentation 中查看它是如何完成的。
模型class场景函数必须有一个默认选项:
public function scenarios()
{
return [
'default' => ['old_password', 'new_password', 'confirm_password']
];
}
我正在尝试验证我的 YII2 更改密码表单。但是我在模糊验证上停留在 YII2 上。
<?php
use yii\bootstrap\ActiveForm;
use yii\helpers\Html;
?>
<?php
$form = ActiveForm::begin([
'id' => 'change-password',
'action' => $action,
'enableAjaxValidation' => true
]);
?>
<?php echo $form->field($model, 'old_password')->label(false)->passwordInput(['placeholder' => 'Your Old Password', 'class' => 'form-control']); ?>
<?php echo $form->field($model, 'new_password')->label(false)->passwordInput(['placeholder' => 'Your New Password', 'class' => 'form-control']); ?>
<?php echo $form->field($model, 'confirm_password')->label(false)->passwordInput(['placeholder' => 'Confirm Your New Password', 'class' => 'form-control']); ?>
<?php echo Html::submitButton('Submit', array('class' => 'btn btn-primary')); ?>
<?php ActiveForm::end(); ?>
谁能告诉我我做错了什么?
仅将其包含在 ActiveForm
配置中是不够的。
可以发送请求,但表单将保持不变。
您还应该准备您的控制器(在 CRUD 生成的控制器中它们是 create
和 update
,在您的情况下它可以只有一个 - 负责更新密码)到 return 正确的 JSON 数据以防 AJAX 请求。
在 official documentation 中查看它是如何完成的。
模型class场景函数必须有一个默认选项:
public function scenarios()
{
return [
'default' => ['old_password', 'new_password', 'confirm_password']
];
}