未来我有以下电子邮件规则是唯一的模式消息独特的验证不yii2
[['email'], 'unique'],
我不使用 Ajax来提交表单。 问题是我收到除了唯一规则以外的所有规则验证消息。
那么如何在客户端做出独特的规则工作呢?
我错过了什么?请帮助
未来我有以下电子邮件规则是唯一的模式消息独特的验证不yii2
[['email'], 'unique'],
我不使用 Ajax来提交表单。 问题是我收到除了唯一规则以外的所有规则验证消息。
那么如何在客户端做出独特的规则工作呢?
我错过了什么?请帮助
的唯一方法是enableAjaxValidation
在客户端
要启用一个输入字段AJAX验证,该字段的 enableAjaxValidation属性配置为真实,指定一个 唯一表单ID:
use yii\widgets\ActiveForm;
$form = ActiveForm::begin([
'id' => 'registration-form',
]);
echo $form->field($model, 'username', ['enableAjaxValidation' => true]);
// ...
ActiveForm::end();
您还需要准备服务器,以便它可以处理AJAX 验证请求。这可以通过代码片段,如 以下的控制器操作来实现:
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
When我添加这样的代码..客户端验证停止工作。提交它将我带到服务器没有任何验证 – alwaysLearn
提供完整的PHP js html代码,我们将帮助你 –
您必须在使用ajaxValidation之前覆盖'clientValidateAttribute'函数。 链接:[http://www.yiiframework.com/doc-2.0/guide-input-validation.html#deferred-validation](http://www.yiiframework.com/doc-2.0/guide-input-validation的.html#延期确认) – ThanhPV
没有AJAX验证有没有办法在客户端 –
@СеменихинМаксим检查独特的规则,但我不节约使用Ajax形式.. 我该怎么办 ?请建议 – alwaysLearn
试试这个'['email','unique','targetClass'=>'\ frontend \ models \ User','message'=>'此邮件地址已被占用。'], – vishuB