保存时,服务器端代码无法获取Ueditor编辑器内容
自从发现了Ueditor之后,爱不释手,决定再也不使用ckeditor了。简介的界面,清爽的风格,强大的功能,太perfect了。这可不是打广告。
下载下来,然后参考文档,整了半天,自以为已经略窥门径,可以派上用场了,然后就把原网站系统的ckeditor换成ueditor,初步的时候还比较顺利,因为两者的原理都差不多,引用下JS,然后创建编辑器。很快完成工作。
当然我只是用一个页面先做的测试,点击,保存,偶了,很高兴。然后把七八个页面的编辑器都换了,当我测试第二个页面的时候,点击保存,发现服务器端代码获取不到编辑器内容,原因是form提交的data没有content(编辑器的name属性,我自己命的名字)这一项。这就比较郁闷了,找了半天原因,再仔细看了下ueditor的开发文档,恍然大悟。
原来是因为我第一个页面的提交按钮的类型是submit,如下:<input type="submit" value="提交" class="submit" />点击之后,直接提交到后台。但是其它页面按钮的类型是button,如下:<input type="button" name="button_submit" id="button_submit" value="提交" />(当点击此按钮的时候,触发form的submit方法)。ueditor文档有说明,如果是手动提交,在提交之前需要使用editor.sync()来同步编辑器的数据。官方文档如下:
sync
editor.sync(); //从编辑器的容器向上查找,如果找到就同步数据
editor.sync(formID); //formID制定一个要同步数据的form的id,编辑器的数据会同步到你指定form下
同步编辑器的数据,为提交数据做准备,主要用于你是手动提交的情况后台取得数据得键值使用你容器上得name属性,如果没有就使用参数传入的textarea
editor.sync();
form.sumbit(); //form变量已经指向了form元素
这篇文章,希望能帮助遇到和我一样问题的童鞋们。