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 相关文章推荐
javascript 常用关键字列表集合
Dec 04 Javascript
Javascript String.replace的妙用
Sep 08 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
Sep 02 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
Apr 26 Javascript
jquery固定底网站底部菜单效果
Aug 13 Javascript
简介JavaScript中的unshift()方法的使用
Jun 09 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
Nov 04 Javascript
基于jQuery实现点击弹出层实例代码
Jan 01 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
May 20 Javascript
Angular中使用$watch监听object属性值的变化(详解)
Apr 24 Javascript
在vue项目中使用md5加密的方法
Sep 14 Javascript
node删除、复制文件或文件夹示例代码
Aug 13 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简介
2006/10/09 PHP
用PHP实现多服务器共享SESSION数据的方法
2007/03/16 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
Angular.js之作用域scope'@','=','&'实例详解
2017/02/28 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
Python subprocess模块常见用法分析
2018/06/12 Python
详解python执行shell脚本创建用户及相关操作
2019/04/11 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
启动一个线程是用run()还是start()
2016/12/25 面试题
医学检验专业大学生求职信
2013/11/18 职场文书
军神教学反思
2014/02/04 职场文书
民事起诉书范本
2015/05/19 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS
java实现web实时消息推送的七种方案
2022/07/23 Java/Android