洪哥最近在调一个使用JQuery来获取Web编辑器的字段时被坑了。编辑器是KindEditor,直接都感觉很不错,很好用!但它修改后的数据就是无法被Jquery获取到,每天获取都是第一次打开时编辑器中的内容。如果一开始编辑器就没有内容,那jquery只能获取到一个空值。

有没有什么办法能解决jquery无法获取KindEditor修改后的内容呢?在网上找来找去,最后经过洪哥的实践,如下方法是靠谱的。

下面这段JavaScript代码是正常创建KindEditor的代码:

<script>

 KindEditor.ready(function(K) {

  var kindEditor1 = K.create('textarea[name="mycontent"]', {

   cssPath : '/config/kindeditor/plugins/code/prettify.css',

   uploadJson : '/config/kindeditor/asp/upload_json.asp',

   fileManagerJson : '/config/kindeditor/asp/file_manager_json.asp',

   allowFileManager : true

  });

  prettyPrint();

 });

</script>

我们在create函数的第二个参数中加入一个元素:

afterBlur: function(){this.sync();}

这个语句的作用是同步编辑器和textarea之间的值。最终的代码如下:

<script>

 KindEditor.ready(function(K) {

  var kindEditor1 = K.create('textarea[name="mycontent"]', {

   cssPath : '/config/kindeditor/plugins/code/prettify.css',

   uploadJson : '/config/kindeditor/asp/upload_json.asp',

   fileManagerJson : '/config/kindeditor/asp/file_manager_json.asp',

   allowFileManager : true,

   afterBlur: function(){this.sync();}

  });

  prettyPrint();

 });

</script>

这样就可以通过JQuery来获取KindEditor编辑后的值了。

其实之前是错怪Jquery了,如果不加sync()那句,普通的JavaScript代码也是获取不到编辑器修改后的值的。

关于kindeditor文本框中修改后的内容无法通过jquery获取,本文就介绍这么多,希望对您有所帮助,谢谢!

03-14 09:56