【一点经验分享】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验证。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。