javascript-如何ajax提交从CKEditor输入的表单文本区域?
我正在使用CKEditor,jQuery和jQuery表单插件,并且我想通过Ajax查询提交CkEditor表单的内容。 这是我的代码:
CKEDITOR.replace('bodyText');
Submit
不幸的是,似乎Ajax请求没有传递bodyText参数;
我做错了什么或如何实现我需要的?
谢谢。
6个解决方案
138 votes
您需要先调用以下命令,以使CKEDITOR更新其相关字段。
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
所以
的HTML
Submit
和JavaScript
function CKupdate(){
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
}
Gabriele Petrioli answered 2020-01-28T06:25:39Z
17 votes
这对我来说最有效:beforeSerialize回调
$('form#description').ajaxForm({
beforeSerialize:function($Form, options){
/* Before serialize */
for ( instance in CKEDITOR.instances ) {
CKEDITOR.instances[instance].updateElement();
}
return true;
},
// other options
});
Pepa Chmel answered 2020-01-28T06:26:01Z
8 votes
如果使用jQuery表单插件,则可以使用beforeSubmit选项以获得更优雅的解决方案:
$("#form").ajaxForm({
beforeSubmit: function()
{
/* Before submit */
for ( instance in CKEDITOR.instances )
{
CKEDITOR.instances[instance].updateElement();
}
},
// ... other options
});
Crewone answered 2020-01-28T06:26:22Z
6 votes
在我的情况下,以下内容对我有帮助,我只需使用这两行,然后再对表格进行序列化。
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
var data = $('#myForm').serializeArray();
Milan Saha answered 2020-01-28T06:26:43Z
3 votes
我尝试过这样的事情:
首先,我必须在@ Html.BeginForm上放置一个id =“ #myForm”,然后将它们放在脚本部分中,在其中使用脚本:
$(document).ready(function CKupdate() {
$('#myForm').ajaxForm(function () {
for (instance in CKEDITOR.instances) {
CKEDITOR.instances[instance].updateElement();
}
});
});
然后我为“提交”按钮做了类似==的操作,对我来说效果很好,不再需要两次按“提交=”
Submit
EugeneEunice answered 2020-01-28T06:27:21Z
1 votes
我只是这样做:
$('#MyTextArea').closest('form').submit(CKupdate);
function CKupdate() {
for (instance in CKEDITOR.instances)
CKEDITOR.instances[instance].updateElement();
return true;
}
Omu answered 2020-01-28T06:27:41Z