Как Вы устанавливаете фокус элемента текстовой области TinyMCE?

Это помогло мне отобразить собственные сообщения об ошибках HTML 5 с проверкой формы.





$('#RegForm').on('submit', function () 
{

if (this.checkValidity() == false) 
{

 // if form is not valid show native error messages 

return false;

}
else
{

 // if form is valid , show please wait message and disable the button

 $("#btnRegister").html(" Please Wait...");

 $(this).find(':submit').attr('disabled', 'disabled');

}


});

Примечание: RegForm - это form id.

Ссылка

Надежда помогает кому-то.

26
задан Justin 5 February 2010 в 22:39
поделиться

7 ответов

Наконец-то нашел ответ ... используйте команду:

tinymce.execCommand('mceFocus',false,'id_of_textarea');

Для моих целей 'id_of_texterea' было "описанием", т.е.

<textarea id="description" ... ></textarea>

В form, который предшествовал моему текстовому полю, я добавил execCommand выше к действию элемента onblur.

41
ответ дан 28 November 2019 в 06:02
поделиться

На самом деле работает настройка параметра в configfile (или в файле jquery). Этот параметр позволяет автоматически фокусировать экземпляр редактора. Значение этой опции должно быть идентификатором экземпляра редактора. Идентификатор экземпляра редактора - это id для исходного элемента textarea или <div>, который был заменен.

Пример использования опции auto_focus:

tinyMCE.init({
    //...
    auto_focus : "elm1"
});
7
ответ дан andlrc 28 November 2019 в 06:02
поделиться
tinyMCE.get('Description').getBody().focus();

Вышеописанное работает и в Firefox, Chrome и IE. Я не тестировал в других браузерах.

6
ответ дан brismuth 28 November 2019 в 06:02
поделиться

Для автоматической фокусировки в tinymce в первом примере документации сказано, что - https://www.tinymce.com/docs/configure/integration-and-setup/#auto_focus

tinymce.init({
      selector: '#textarea_id',
      auto_focus: '#textarea_id'
});

Это работает для меня в Версия TinyMCE 4.7.6

2
ответ дан Maniruzzaman Akash 28 November 2019 в 06:02
поделиться

Я использую следующую функцию для фокусировки редактора с помощью thinyMCE. Это использует jQuery, но было бы легко избавиться от этого и использовать document.querySelectorAll(). Используйте babel , если вам это нужно в es5.

let focusEditor = function(editorContainer) {
  let tinymce;
  if (/iPad|iPhone|iPod/.test(navigator.platform)) { return; }
  let id = $('.text-editor', editorContainer.innerHTML).first().attr('id');
  if (tinymce = window.tinyMCE.get(id)) {
    try {
      return tinymce.focus();
    } catch (error) {
      return tinymce.on('init', function() { return this.focus(); });
    }
  } else {
    return $(`#${id}`, editorContainer).focus();
  }
}

EditorContainer - это любой элемент, окружающий текстовую область tinyMCE, например, div с идентификатором 'text-container', который вы можете вызвать focusEditor($('#text-container')) или в React focusEditor(React.findDOMNode(this))

0
ответ дан svnm 28 November 2019 в 06:02
поделиться

TinyMCE 4.7.4

Ничто из вышеперечисленного не сработало для меня, подписка на событие init TinyMCEs сработала:

const elTinyMce = tinyMCE.get('your_textarea_id');
// (optional) This is not necessary.
// I do this because I may have multiple tinymce elements on my page
tinyMCE.setActive(elTinyMce);
elTinyMce.on('init', function () {
    // Set the focus
    elTinyMce.focus();
    // (optional) Select the content
    elTinyMce.selection.select(
        elTinyMce.getBody(),
        true
    );
    // (optional) Collapse the selection to start or end of range
    elTinyMce.selection.collapse(false);
});

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

-1
ответ дан DerpyNerd 28 November 2019 в 06:02
поделиться

Это должно передать фокус в текстовое поле TinyMCE:

$("#id_of_tinyMCE_area").focus();
2
ответ дан 28 November 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: