У меня есть несколько полей в форме. Некоторые из них - простые входные данные, другие - средства выбора даты и времени, некоторые из них - CKEditors. Я обрабатываю форму отправки вручную, поэтому мне нужно вручную обновить исходные поля для экземпляров CKEditor, чтобы получить все изменения, прежде чем я сохраню их в базе данных MySQL. Я помещаю все экземпляры в массив (я вижу его содержимое в инструменте веб-разработчика Chrome), но когда я пытаюсь использовать методы destroy или updateSourceElement для одного элемента из этого массива, я получаю «TypeError, item.updateSourceElement не является функцией» Сообщения.

Я использую этот код:

const CKeditors = {};

...

function createEditor( elementId ) {
return ClassicEditor
.create( document.querySelector( elementId ),
{
    toolbar: [ "heading", "|", "bold", "italic", "link", "bulletedList", "numberedList"]
})
.then( editor => {
    CKeditors[ elementId ] = editor;
})
    .catch( err => console.error( err.stack ) );
}

createEditor("#'.$mezo['mezonev'].'_tartalom");  // $mezo['mezonev'].'_tartalom is the unique name of the input field

function submitAllCKeditors(){
  for (item in CKeditors)
  { 
    item.updateSourceElement();
  }
}

...

и где-то позже, когда я обрабатываю событие onlick, я вызываю "submitAllCKeditors ();" Я вижу содержимое массива с правильными идентификаторами, но получаю ошибку для item.updateSourceElement ();

Что я делаю не так?

1
Gary