今天在使用kindeditor编辑器时发现在获取textarea值的时候,从数据库读出来的值都能获取到,但是新输入的值就得不到,只要是新输入的都得不到值.
因为程序用到js判断textarea是否为空,结果总是得不到textarea值,在kindeditor官网看了说是要加
kindeditor编辑器我取不到编辑器数据,直接取得textarea的value也没用。
KindEditor的可视化操作在新创建的iframe上执行,代码模式下的textarea框也是新创建的,所以最后提交前需要执行 sync() 将HTML数据设置到原来的textarea。
KindEditor在默认情况下自动寻找textarea所属的form元素,找到form后onsubmit事件里添加editor.sync()函数,所以用form方式提交数据,不需要手动执行editor.sync()函数。
// 将编辑器的HTML数据同步到textarea
editor.sync();
// 将编辑器的HTML数据同步到textarea
editor.sync();
加了editor.sync();代码还是得不到值。
只好百度了一下才知道解决方案
以下是找到的解决方案,总算解决了
我昨天刚用kindeditor,我是使用ajaxForm提交表单的在360浏览器下获取textarea没问题,可在火狐浏览器下却获取不到值,后来我添加 了afterBlur:function(){this.sync();} 火狐才获取到值!
我的kindeditor创建代码如下:
KindEditor.ready(function(K) {
editor = K.create('textarea[name="content"]', {
cssPath : '../kindeditor/plugins/code/prettify.css',
uploadJson : '../Kindeditor/KEupload',
fileManagerJson : '../kindeditor/php/file_manager_json.php',
allowFileManager : true,
afterCreate : function() {
this.sync();
},
afterBlur:function(){
this.sync();
}
});