TinyMCE提交AjaxForm获取不到数据的解决方法


Posted in Javascript onMarch 05, 2015

本文实例分析了TinyMCE提交AjaxForm获取不到数据的解决方法。分享给大家供大家参考。具体分析如下:

在没有使用AjaxForm前,我做的一个小小的评论提交的Web form,评论内容使用了TinyMCE做文本编辑。为了增加一点点的用户体验,就顺手拿AjaxForm来实现Ajax提交。可是发现出现了一个意外的事情。就是每次提交,第一次提交时,AjaxForm会无法获得当前编辑的评论内容,即TextArea里面的内容,要再点击一次提交,才能将TextArea的内容提交上去。

关键是TinyMCE上的内容没有在提交前更新到TextArea中。于是想看看AjaxForm是否有在提交前的事件绑定,发现在beforeSubmit事件中,formData的内容已经被填充,虽然可以在此处自行将当前的TinyMCE的内容填充上去,可是总觉得是不太漂亮的解决方案。

为了找是否有其它途径解决此问题,我查看了一下AjaxForm的源代码,发现原来AjaxForm作者已经为这问题提出了统一的解决方案,具体源代码如下:

1. js代码如下:

// hook for manipulating the form data before it is extracted;

// convenient for use with rich editors like tinyMCE or FCKEditor

var veto = {};

this.trigger('form-pre-serialize', [this, options, veto]);

if (veto.veto) {

log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');

return this;

}

2. 对应FCKEditor类似:
// bind form using 'ajaxForm' 

$('#commentForm').ajaxForm(options);

// 绑定form-pre-serialize事件,在触发form-serilaize事件前保存tinyMCE的数据到textarea中

$('#commentForm').bind('form-pre-serialize', function(event, form, options, veto) {

tinyMCE.triggerSave();

});

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
学习YUI.Ext第五日--做拖放Darg&Drop
Mar 10 Javascript
JS编程小常识很有用
Nov 26 Javascript
javaScript复制功能调用实现方案
Dec 13 Javascript
jquery 多行文本框(textarea)高度变化
Jul 03 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
Nov 21 Javascript
微信小程序 支付简单实例及注意事项
Jan 06 Javascript
vue的传参方式汇总和router使用技巧
May 22 Javascript
vue实现自定义日期组件功能的实例代码
Nov 06 Javascript
小程序调用微信支付的方法
Sep 26 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
Nov 19 Javascript
JS实现打砖块游戏
Feb 14 Javascript
微信小程序报错: thirdScriptError的错误问题
Jun 19 Javascript
jQuery实现数秒后自动提交form的方法
Mar 05 #Javascript
Redis基本知识、安装、部署、配置笔记
Mar 05 #Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
Mar 05 #Javascript
PHP 数组current和next用法分享
Mar 05 #Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
Mar 05 #Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
Mar 05 #Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
Mar 05 #Javascript
You might like
php连接mssql数据库的几种方法
2013/02/21 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
JS跨域请求的问题解析
2018/12/03 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
Python中用于计算对数的log()方法
2015/05/15 Python
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
简单的项目建议书模板
2014/03/12 职场文书
班级团队活动方案
2014/08/14 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
党员个人剖析材料(四风问题)
2014/10/07 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书