Yii2表单事件之Ajax提交实现方法


Posted in PHP onMay 04, 2017

本文实例讲述了Yii2表单事件之Ajax提交实现方法。分享给大家供大家参考,具体如下:

前言

Yii2 现在使用 JS 都必须要注册代码了。

要实现 Ajax 提交,有两种方法。一是直接在 ActiveForm 调用 beforeSubmit 参数,但是个人认为这样没有很好的把 JS 和 HTML 分开,所以我们这篇文章主要介绍第二种方法 - 外部写 JS 方法。

表单部分

<?php $form = ActiveForm::begin([
  'id'   => $model->formName(),
  'action' => ['/apitools/default/index']
]); ?>

Ajax

<?php
$js = <<<JS
// get the form id and set the event
$('form#{$model->formName()}').on('beforeSubmit', function(e) {
  var \$form = $(this);
  // do whatever here, see the parameter \$form? is a jQuery Element to your form
}).on('submit', function(e){
  e.preventDefault();
});
JS;
$this->registerJs($js);

如果你使用了 JsBlock,你还可以这样写:

<?php JsBlock::begin() ?>
  <script>
    $(function () {
      jQuery('form#apitool').on('beforeSubmit', function (e) {
        var $form = $(this);
        $.ajax({
          url: $form.attr('action'),
          type: 'post',
          data: $form.serialize(),
          success: function (data) {
            // do something
          }
        });
      }).on('submit', function (e) {
        e.preventDefault();
      });
  </script>
<?php JsBlock::end() ?>

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php数据库连接
Oct 09 PHP
聊天室php&amp;mysql(一)
Oct 09 PHP
PHP4.04简明安装
Oct 09 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
PHP的伪随机数与真随机数详解
May 27 PHP
PHP代码优化技巧小结
Sep 29 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 PHP
php写app用的框架整理
Sep 29 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 PHP
PHP经典实用正则表达式小结
May 04 #PHP
PHP实现的简单异常处理类示例
May 04 #PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 #PHP
PHP 无限级分类
May 04 #PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 #PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 #PHP
Laravel5中Cookie的使用详解
May 03 #PHP
You might like
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
javascript 中事件冒泡和事件捕获机制的详解
2017/09/01 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
2019/05/21 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
python修改注册表终止360进程实例
2014/10/13 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
资源环境与城市管理专业推荐信
2013/11/30 职场文书
社团活动策划书范文
2014/01/09 职场文书
公司营业员的自我评价
2014/03/04 职场文书
环境工程专业自荐信范文
2014/06/24 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
瘦西湖导游词
2015/02/03 职场文书
立春观后感
2015/06/18 职场文书
《浅水洼里的小鱼》教学反思
2016/02/16 职场文书
导游词之五台山
2019/10/11 职场文书
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers