版本:
KindEditor-->version 4.1.4;
jquery-->1.8.0;
单独使用KindEditor的jsp/demo是正常的,但是放入项目内就无法获得textarea的值,网上搜索到了许多解决办法,参照下来,
采用了比较适合且简单的方式,在控制表单提交的js方法内,调用sync()方法。
具体是先声明var editor1;初始化与之前一样,
KindEditor.ready(function(K) {
editor1 = K.create('textarea[name="content1"]', {
cssPath : '../kindeditor/plugins/code/prettify.css',
uploadJson : 'upload_image.jsp?up_type=image',
fileManagerJson : '../kindeditor/jsp/file_manager_json.jsp',
allowFileManager : true,
afterCreate : function() {
var self = this;
K.ctrl(document, 13, function() {
//此处没有被调用
self.sync();
document.forms['frm_upload_html'].submit();
});
K.ctrl(self.edit.doc, 13, function() {
//此处没有被调用
self.sync();
document.forms['frm_upload_html'].submit();
});
}
});
prettyPrint();
});
修改表单控制方法:
$("input[name='btn_upload']").click(function(){
editor1.sync();
var x=document.getElementById("frm_upload_html");
var tempText = "";
for (var i=0;i<x.length;i++)
{
if (x.elements[i].type == "textarea") {
if ("content1" == x.elements[i].name) {
//此处得到textarea的内容 可以赋予其他form表单的属性然后提交
tempText = x.elements[i].value;
alert(i +" name="+x.elements[i].name +" value="+x.elements[i].value);
}
}
}
$("#frm_upload").submit();
});