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 相关文章推荐
js Html结构转字符串形式显示代码
Nov 15 Javascript
获取select元素被选中的文本内容的js代码
Jan 29 Javascript
jQuery常用数据处理方法小结
Feb 20 Javascript
JavaScript如何实现组合列表框中元素移动效果
Mar 01 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
Dec 29 Javascript
捕获未处理的Promise错误方法
Oct 13 Javascript
微信小程序自定义tab实现多层tab嵌套功能
Jun 15 Javascript
JavaScript继承与聚合实例详解
Jan 22 Javascript
vue添加class样式实例讲解
Feb 12 Javascript
详解vue 不同环境配置不同的打包命令
Apr 07 Javascript
JavaScript监听一个DOM元素大小变化
Apr 26 Javascript
react国际化react-intl的使用
May 06 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
PHP6 中可能会出现的新特性预览
2014/04/04 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
jQuery 表单验证扩展(三)
2010/10/20 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
有原因的手表:Flex Watches
2019/03/23 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
怎么处理XML的中文问题
2015/03/26 面试题
什么是GWT的Entry Point
2013/08/16 面试题
公司新员工的演讲稿注意事项
2014/01/01 职场文书
气象学专业个人求职信
2014/04/22 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
2014年司法局工作总结
2014/12/11 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
golang 实用库gotable的具体使用
2021/07/01 Golang
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL