CKEditor отправляет пустой контент в форму. - PullRequest
0 голосов
/ 03 декабря 2011

Я начал использовать CKEditor v3 несколько недель назад. Я использовал его в проекте php. Я использовал его с jquery (используя адаптер jquery) и все это при использовании $ .ajax (потому что не могу обрабатывать ошибкипри использовании формы jquery) для отправки, и я думал, что все в порядке.

Так что здесь появляется случай, когда мне нужно использовать обычный механизм форм для отправки контента ckeditor и всей другой информации формы.
К моему удивлению, контент был пуст, поэтому я запустил Google и, по-видимому,это известная проблемаЯ еще не видел ничего такого, что позволило бы мне публиковать контент на стороне 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()" />

, который делает работу для меня. Но действительно и немного неудобно с этим, неЕсть ли лучший способ решить эту проблему?

Спасибо

Ответы [ 5 ]

3 голосов
/ 11 июля 2012

Я запускаю большое приложение с некрасивым унаследованным кодом, и мне нужно что-то, что работало бы по всему приложению настолько ненавязчиво, насколько это возможно. В моем случае было нецелесообразно прослушивать отправку на каждой странице в отдельности, и даже когда я делал это, у меня иногда возникали условия гонки, когда отправка еще происходила до того, как код события клика имел возможность это сделать. Следующее, кажется, помогает мне при запуске после загрузки страницы в глобальной области видимости:

for(var i in CKEDITOR.instances) {
  CKEDITOR.instances[i].on('blur', function() { this.updateElement(); });
}
2 голосов
/ 03 декабря 2011

Пусть это поможет

CKEDITOR.instances[content].getData()
0 голосов
/ 11 февраля 2019

Я использовал это в событии jquery ready для всех форм:

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

Позже я добавляю еще один специфический обработчик события отправки формы, чтобы выполнить собственную настраиваемую логику отправки для каждой формы.

0 голосов
/ 24 мая 2012

Я фактически добавил свой собственный поворот, который хорошо работает, так как у меня были проблемы с той же проблемой сегодня.

Я использовал ваш вызов функции, но вместо этого я даю своей текстовой области идентификатор ckeditor:

function returnToSubmit() {
$('#ckeditor').val(CKEDITOR.instances['ckeditor'].getData();
}
0 голосов
/ 08 января 2012

Только что столкнулся с этой проблемой ... кажется, что лучший способ обновить все текстовые области:

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

http://cksource.com/forums/viewtopic.php?f=11&t=15877

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...