使用Yii框架自带的CActiveForm实现ajax提交表单
2017-09-14 09:10
671 查看
注意: 启用enableAjaxValidation => true 貌似自定义url 不起作用!
Php代码:
看这段代码是yii框架自动生成form表单中的代码,enableAjaxValidation 是否开启ajax验证,enableClientValidation是否开启客户端验证,clientOptions是客户端验证选项,开启客户端验证就是像用户名格式、密码格式之类的前端js正则验证就可以了,但是像用户名需要进行唯一性验证的时候,单纯的客户端验证不能实现了,这时候就需要ajax异步验证相配合,所以两个都需要开启,clientOptions中定义了客户端验证是在什么时候进行,我设定的是提交前(submit之前),afterValidate中定义了验证通过之后需要进行的js操作,就是提交表单数据到后台,没什么难点,只是可能有些方法不知道,问百度。
Yii中还有一个ajax提交的button,
Php代码:
如果你使用这个按钮,那么你就无法使用表单自带的rule规则验证,即使实现了,也相当麻烦,干脆别用这个,这个按钮适应不需要验证的表单
原文网址:http://blog.csdn.net/wjc19911118/article/details/42237379
Php代码:
<div class="form"> <?php $form=$this->beginWidget('CActiveForm', array( 'id'=>'login-form', 'enableAjaxValidation'=>true, 'enableClientValidation'=>true, 'clientOptions' => array( 'validateOnSubmit' => true, 'afterValidate'=>'js:function(form,data,hasError){ if(!hasError){ $.ajax({ "type":"POST", "url":"login", "data":$("#login-form").serialize(), "success":function(data){$("#searchResults").html(data);}, }); } }' ), )); ?> <p class="note">Fields with <span class="required">*</span> are required.</p> <div class="row"> <?php echo $form->labelEx($model,'username'); ?> <?php echo $form->textField($model,'username'); ?> <?php echo $form->error($model,'username'); ?> </div> <div class="row"> <?php echo $form->labelEx($model,'password'); ?> <?php echo $form->passwordField($model,'password'); ?> <?php echo $form->error($model,'password'); ?> <p class="hint"> Hint: You may login with <tt>demo/demo</tt>. </p> </div> <div class="row rememberMe"> <?php echo $form->checkBox($model,'rememberMe'); ?> <?php echo $form->label($model,'rememberMe'); ?> <?php echo $form->error($model,'rememberMe'); ?> </div> <div class="row submit"> <?php echo CHtml::SubmitButton('Login');?> </div> <div id="searchResults"></div> <?php $this->endWidget(); ?> </div><!-- form -->
看这段代码是yii框架自动生成form表单中的代码,enableAjaxValidation 是否开启ajax验证,enableClientValidation是否开启客户端验证,clientOptions是客户端验证选项,开启客户端验证就是像用户名格式、密码格式之类的前端js正则验证就可以了,但是像用户名需要进行唯一性验证的时候,单纯的客户端验证不能实现了,这时候就需要ajax异步验证相配合,所以两个都需要开启,clientOptions中定义了客户端验证是在什么时候进行,我设定的是提交前(submit之前),afterValidate中定义了验证通过之后需要进行的js操作,就是提交表单数据到后台,没什么难点,只是可能有些方法不知道,问百度。
Yii中还有一个ajax提交的button,
Php代码:
<?php echo CHTML::ajaxSubmitButton($label, $url)?>
如果你使用这个按钮,那么你就无法使用表单自带的rule规则验证,即使实现了,也相当麻烦,干脆别用这个,这个按钮适应不需要验证的表单
原文网址:http://blog.csdn.net/wjc19911118/article/details/42237379
相关文章推荐
- 使用Yii框架自带的CActiveForm实现ajax提交表单
- 使用Yii框架自带的CActiveForm实现ajax提交表单
- 使用AJAX 加 iframe 实现表单无刷新提交并上传文件
- 使用ajax 和 FormData 实现无刷新提交 带文本和文件的表单
- 不使用ajax实现无刷新提交表单实例
- 使用Ajax方法实现Form表单的提交及注意事项
- 使用Jquery的Ajax异步提交有二进制数据的表单实现方案
- yii框架表单模型使用及以数组形式提交表单数据示例
- 使用ajax方法实现form表单的提交(附源码)
- EasyUI框架 使用Ajax提交注册信息的实现代码
- Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
- PHP Yii框架中使用Jquery自带的Ajax功能
- 使用YII2框架实现微信公众号中表单提交功能
- YII框架中自带的表单,搜索,分页代码的实现
- 使用jQuery实现Ajax异步提交表单实现局部刷新
- 不使用ajax实现无刷新提交表单
- Lavarel框架中使用ajax提交表单的方法
- YII框架中自带的表单,搜索 4000 ,分页代码的实现
- java web开发中,jsp使用了frameset框架,如何实现整个页面跳转,并且同一个表单中可以提交两个action
- YII框架中自带的表单,搜索,分页代码的实现