Мои формы не отправляют данные на сервер при первом отправке при использовании CKEDITOR. Если я нажму один раз, он отправит пустые поля без моего ввода. Однако, если я отправлю его второй раз, он отправит введенные данные на сервер. Поэтому вам нужно отправить его дважды для передачи данных на сервер.
У меня есть CKEDITOR в комплекте с плагином BBCODE.
$('form#ajax').on('submit', function(){ var that = $(this), url = that.attr('action'), type = that.attr('method'), data = {}; that.find('[name]').each(function(index, value){ var that = $(this), name = that.attr('name'), value = that.val(); data[name] = value; }); console.log(data.message); // Outputs on second submit $.ajax({ url: url, type: type, data: data, success: function(response){ // } }); return false; });
{{ 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() }}
Извините, если синтаксис формы выглядит вам чуждо, это Laravel Blade.
При первом отправке данные, отправленные на сервер, пустые. На втором подать, это не так.
попробуйте обновить поля, связанные с CKEditor, перед выполнением Ajax Submit, например:
$('form#ajax').on('submit', function(){ for ( instance in CKEDITOR.instances ) { CKEDITOR.instances[instance].updateElement(); } //rest of your code