【一点经验分享】Yii2 - ajax 和 client side混合检验

之前yii2的自定义检验需要使用到ajax来触发服务器端自定义代码的检验功能,后来发现整个表单都使用ajax的话有很大的延迟。

思考了一下正常php表单的解决方案,最好的方法就是一部分表单元素使用client-side检验,需要服务器端的再使用ajax,例如email或者用户名是否已被其他人注册了。代码如下:

<?php $form = ActiveForm::begin([
        'id' => 'reg-form',
        ]); ?>
<?= $form->field($model, 'name_en') ?>
<?= $form->field($model, 'email',['enableAjaxValidation'=>true]) ?>
......
<?php ActiveForm::end(); ?>


email后面的设置['enableAjaxValidation'=>true]就是指明这个activefield才需要使用ajax验证。

你可能感兴趣的:(Ajax,yii2,客户端)