Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Yii2为输入字段实现客户端唯一验证_Javascript_Php_Jquery_Ajax_Yii2 - Fatal编程技术网

Javascript Yii2为输入字段实现客户端唯一验证

Javascript Yii2为输入字段实现客户端唯一验证,javascript,php,jquery,ajax,yii2,Javascript,Php,Jquery,Ajax,Yii2,我有一个领域在我的大形式,即 <?= $form->field($model, 'name')->textInput(['maxlength' => 255]) ?> 其他验证工作正常,但唯一的客户端验证不起作用。最后,我自己通过为单个输入字段启用AJAX验证并使用isAjax来完成验证,以便服务器能够处理AJAX验证请求 代码如下: 鉴于: <?= $form->field($model, 'name',['enableAjaxValidation'

我有一个领域在我的大形式,即

<?= $form->field($model, 'name')->textInput(['maxlength' => 255]) ?>

其他验证工作正常,但唯一的客户端验证不起作用。

最后,我自己通过为单个输入字段启用AJAX验证并使用isAjax来完成验证,以便服务器能够处理AJAX验证请求

代码如下:

鉴于:

<?= $form->field($model, 'name',['enableAjaxValidation' => true, 'validateOnChange' => false])->textInput(['maxlength' => 255]) ?>
它会自动调用模型中定义的验证规则


有关详细信息,请参阅:

,因为字段名与模型属性名不匹配。@Incognitoskull:实际上它的很大形式有60多个输入、下拉列表、单选框等。。字段。@IncognitoSkulll:除Uniques外,所有客户端验证都在工作。不要对字段使用自定义id,否则验证将不起作用。否。。我没有使用自定义id,因为它会动态生成id
public function rules() {
        return [
     [['name'], 'unique'],
]
...
other validations
...
};
<?= $form->field($model, 'name',['enableAjaxValidation' => true, 'validateOnChange' => false])->textInput(['maxlength' => 255]) ?>
    if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {

            $nm= $_POST['BusinessProcessProfile']['name'];
            $result = Model::find()->select(['name'])->where(['name' => "$nm"])->one();
            if ($result) {
                Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
                return \yii\widgets\ActiveForm::validate($model, 'name');
            } else {
                return false;
    }
}