认真找下原因。
首先描述下我这边KindEditor的错误现象:
1、在IE8/FF下均得不到值;
2、当点击KindEditor的全拼按钮切换到全屏模式输入时,再返回正常模式,可以得到值;
3、我用的是jQuery的点击事件提交表单的,提交,无法得到值;
4、直接用表单的提交按钮可以得到值。
下面以 KindEditor 4.x版本为例说明,先贴上正确的代码:
123456789101112131415 |
KindEditor.ready( function (K){ K.create(‘textarea[name= "content" ]‘,{ themeType: ‘simple’, resizeType: 1, uploadJson:‘common/KEditor/upload_json.php’, fileManagerJson:‘common/KEditor/file_manager_json.php’, allowFileManager: true ,
//经测试,下面这行代码可有可无,不影响获取textarea的值
//afterCreate:function(){this.sync();}
//下面这行代码就是关键的所在,当失去焦点时执行this.sync();
afterBlur: function (){ this .sync();} }); }); |
相关说明:
从上面的代码可以看到,解决方法在于最后一行代码,afterBlur:function(){this.sync();},当失去焦点时执行 this.sync();
那么这个 this.sync();函数是干嘛的呢?简单的说:这个函数就是同步KindEditor的值到textarea文本框。
官方解释:
sync()
将编辑器的内容设置到原来的textarea控件里。
参数: 无
返回: KEditor
地址:http://www.kindsoft.net/docs/editor.html#sync
补充:在 KindEditor 4.x版本中,KE.sync(); 要改成 this.sync();