我正在尝试使用 AJAX 创建一个管理页面,这样当客户端在CKEDITOR中更新信息时,就不必转到新的页面。使用.瓦尔()函数从输入字段中获取数据很容易,但是因为文本区域不是动态更新的,所以我不能使用相同的函数。以下是我得到的结果:
//这会将所有textarea标记替换到CKEDITORS中
<script type="text/javascript">
CKEDITOR.replaceAll();
</script>
//这会尝试从输入和文字区域抓取所有数据
$(function() {
$("#submit").click(function() {
var newsTitle = $("#newsTitle").val();
var editNews = CKEDITOR.instances.editNews.getData();
var contactTitle = $("#contactTitle").val();
var editContact = CKEDITOR.instances.editContact.getData();
var linksTitle = $("#linksTitle").val();
var editLinks = CKEDITOR.instances.editLinks.getData();
$.ajax({
type: "POST",
url: "update.php",
data: 'newsTitle='+newsTitle+'&editNews='+editNews+'&contactTitle='+contactTitle+'&editContact='+editContact+'&linksTitle='+linksTitle+'&editLinks='+editLinks,
cache: false,
success: function(){
updated();
}
});
return false;
});
});
getData()函数看起来可以工作,因为我用警报测试了它,它从编辑器中获取数据,但是一旦我尝试更新,它就不工作了...
有什么主意吗?
4条答案
按热度按时间jutyujz01#
以下代码替换了文本区域:
在JS文件中,这是代码,我使用的是Jquery Validator插件:
这是大多数时候产生错误的代码行:
在示例之后总是出现文本区域的ID。
我有自己的config.js,你可以从ckeditor网站或示例中获得。
klsxnrf12#
查看用于jQuery的CKEditor函数/适配器
http://docs.cksource.com/CKEditor_3.x/Developers_Guide/jQuery_Adapter
由于设置和检索编辑器数据是一个常见的操作,jQuery Adapter还提供了专用的val()方法:
vmdwslir3#
有了这段代码,我的问题就解决了。我更新了运行ckeditor的字段,使其在serialize中可见。
hc2pp10m4#
我在ckeditor和 AJAX 调用方面也遇到了同样的问题。