Javascript CKEDITOR不';t在第一次提交时通过ajax提交数据
使用CKEDITOR时,我的表单在第一次提交时不会向服务器发送数据。如果我单击它一次,它将发送空字段而不输入。但是,如果我再次提交,它会将输入的数据发送到服务器。因此,您需要提交两次才能将数据传递到服务器 我已经将CKEDITOR与BBCODE插件捆绑在一起 jQuery Ajax 形式Javascript CKEDITOR不';t在第一次提交时通过ajax提交数据,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,使用CKEDITOR时,我的表单在第一次提交时不会向服务器发送数据。如果我单击它一次,它将发送空字段而不输入。但是,如果我再次提交,它会将输入的数据发送到服务器。因此,您需要提交两次才能将数据传递到服务器 我已经将CKEDITOR与BBCODE插件捆绑在一起 jQuery Ajax 形式 {{Form::open(数组('action'=>)AppsController@sendApp“,”类“=>”应用“,”id“=>”ajax'))} {{Form::label('message','App
{{Form::open(数组('action'=>)AppsController@sendApp“,”类“=>”应用“,”id“=>”ajax'))}
{{Form::label('message','Application',array('style'=>'padding top:5px'))}
{Form::submit('Send Application',array('class'=>'btn-btn-core-btn-block-submit','style'=>'margin-top:5px'))}
{{Form::close()}}
很抱歉,如果您觉得表单语法很陌生,那就是Laravel Blade
扼要重述
在第一次提交时,发送到服务器的数据为空。在第二次提交时,情况并非如此。在执行Ajax提交之前,请尝试更新与CKEditor相关的字段,如:
$('form#ajax').on('submit', function(){
for ( instance in CKEDITOR.instances ) {
CKEDITOR.instances[instance].updateElement();
}
//rest of your code
您是否尝试过使用浏览器的检查器调试代码?ctrl+shift+i在google chrome上,转到“源”选项卡,按ctrl+o并用javascript打开文件,现在放置一些断点并检查值,您应该找到错误。您可以提供一个链接吗?我怀疑这可能与表单标记或表单上的操作有关。@arieljuod我已经调试了代码,它没有显示错误。“这么一个问题是我最后的选择。”林迪霍普说,“这和行动无关。”。我完全禁用了AJAX调用,只需控制台记录消息的值,它首先返回空,然后返回填充。这个问题(和答案)类似于3年前提出的这个问题。我完全忘了回来给你更多的代表。这起作用了:)太好了,谢谢!=)我花了一段时间才意识到ajax提交停止工作,因为我刚刚将纯文本区域字段更改为CKEditor。您为我节省了很多时间:)我也遇到了同样的问题,并尝试在
$.ajax(
方法,但它不起作用(也许我只是把事情弄糟了).然后我按照你的建议试了试,效果很好。谢谢你,这真的很有帮助,我想知道你能否解释为什么会发生这种行为?
{{ Form::open(array('action' => 'AppsController@sendApp', 'class' => 'app', 'id' => 'ajax')) }}
<div class="form-container">
{{ Form::label('message', 'Application', array('style' => 'padding-top: 5px')) }}
<textarea name="message" cols="50" rows="6" class="form-control" id="eitor" style="padding-top:5px;"></textarea>
</div>
{{ Form::submit('Send Application', array('class' => 'btn btn-core btn-block submit', 'style' => 'margin-top: 5px')) }}
{{ Form::close() }}
$('form#ajax').on('submit', function(){
for ( instance in CKEDITOR.instances ) {
CKEDITOR.instances[instance].updateElement();
}
//rest of your code