Javascript CKEditor向表单提交空内容。

Javascript CKEditor向表单提交空内容。,javascript,forms,ckeditor,Javascript,Forms,Ckeditor,几周前我开始使用CKEditor v3。在一个php项目中使用它。我一直在使用jquery(使用jquery适配器)和所有这些,同时使用$.ajax(因为在使用jquery表单时无法处理错误)提交,我认为一切都很好 因此,这里会弹出一个案例,我需要使用普通表单机制来提交ckeditor内容和表单的所有其他信息。 令我惊讶的是,内容是空的,所以我启动了谷歌,显然这是一个已知的问题。 我还没有看到任何东西可以让我把我的内容发布到php端。所以我想出了一个解决办法 我知道onclick总是在提交前启动

几周前我开始使用CKEditor v3。在一个php项目中使用它。我一直在使用jquery(使用jquery适配器)和所有这些,同时使用$.ajax(因为在使用jquery表单时无法处理错误)提交,我认为一切都很好

因此,这里会弹出一个案例,我需要使用普通表单机制来提交ckeditor内容和表单的所有其他信息。
令我惊讶的是,内容是空的,所以我启动了谷歌,显然这是一个已知的问题。 我还没有看到任何东西可以让我把我的内容发布到php端。所以我想出了一个解决办法

我知道onclick总是在提交前启动,所以我写了这个

function returntoSubmit(){
    myForm = document.forms[0];
    myForm.elements["content"].value = $("#content").val();// note that the textarea name and id are all the same "content"

}

// html here 
 <input type="submit" value="Save" onclick="returntoSubmit()" />
函数returntoSubmit(){
myForm=document.forms[0];
myForm.elements[“content”].value=$(“#content”).val();//请注意,textarea名称和id都是相同的“content”
}
//这里是html
这对我来说很管用。但是真的有点不舒服,没有更好的方法来解决这个问题吗

谢谢

这能帮上忙吗

CKEDITOR.instances[content].getData()
希望这有帮助

CKEDITOR.instances[content].getData()

我也遇到了这个问题。。。更新所有文本区域的最佳方式似乎是:

for(var i in CKEDITOR.instances) CKEDITOR.instances[i].updateElement();

也遇到了这个问题。。。更新所有文本区域的最佳方式似乎是:

for(var i in CKEDITOR.instances) CKEDITOR.instances[i].updateElement();

事实上,我已经添加了我自己的扭曲,效果很好,因为我今天遇到了同样的问题

我使用了您的函数调用,但我为我的textarea提供了ckeditor的ID:

function returnToSubmit() {
$('#ckeditor').val(CKEDITOR.instances['ckeditor'].getData();
}

实际上,我已经添加了我自己的扭曲,效果很好,因为我今天遇到了同样的问题

我使用了您的函数调用,但我为我的textarea提供了ckeditor的ID:

function returnToSubmit() {
$('#ckeditor').val(CKEDITOR.instances['ckeditor'].getData();
}

我正在运行一个带有一些讨厌的遗留代码的大型应用程序,需要一些尽可能非侵入性地在整个应用程序中工作的东西。在我的情况下,在每个页面上单独监听提交是不可行的,即使在我监听的时候,我偶尔也会遇到比赛条件,在点击事件代码有机会完成之前,提交仍然发生。当在全局范围内加载页面后运行时,以下内容似乎对我起到了作用:

for(var i in CKEDITOR.instances) {
  CKEDITOR.instances[i].on('blur', function() { this.updateElement(); });
}

我正在运行一个带有一些讨厌的遗留代码的大型应用程序,需要一些尽可能非侵入性地在整个应用程序中工作的东西。在我的情况下,在每个页面上单独监听提交是不可行的,即使在我监听的时候,我偶尔也会遇到比赛条件,在点击事件代码有机会完成之前,提交仍然发生。当在全局范围内加载页面后运行时,以下内容似乎对我起到了作用:

for(var i in CKEDITOR.instances) {
  CKEDITOR.instances[i].on('blur', function() { this.updateElement(); });
}

我在针对所有表单的jquery就绪事件中使用了此选项:

$('form').on('submit',function(){
  for(var i in CKEDITOR.instances) {
    CKEDITOR.instances[i].updateElement();
  }
});

稍后,我添加了另一个特定的表单提交事件处理程序,以对每个表单执行实际的自定义提交逻辑。

我在所有表单的jquery就绪事件中使用了该处理程序:

$('form').on('submit',function(){
  for(var i in CKEDITOR.instances) {
    CKEDITOR.instances[i].updateElement();
  }
});

稍后,我添加了另一个特定的表单提交事件处理程序,为每个表单执行实际的自定义提交逻辑。

感谢您的回复,我到底将其称为何处?在我的returntoSubmit()javascript方法中?我刚刚意识到在firebug CKEDITOR.instances中[content]是未定义的。使用jQueryAdapter的等价物是什么?谢谢你的回答,我到底把它叫做什么?在我的returntoSubmit()javascript方法中?我刚刚意识到在firebug CKEDITOR.instances中[content]是未定义的。使用jquery适配器的等价物是什么?谢谢!Coldfusion需要2个标志。谢谢!Coldfusion需要2个符号。