Это помогло мне отобразить собственные сообщения об ошибках 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
.
Надежда помогает кому-то.
Наконец-то нашел ответ ... используйте команду:
tinymce.execCommand('mceFocus',false,'id_of_textarea');
Для моих целей 'id_of_texterea' было "описанием", т.е.
<textarea id="description" ... ></textarea>
В form, который предшествовал моему текстовому полю, я добавил execCommand выше к действию элемента onblur.
На самом деле работает настройка параметра в configfile
(или в файле jquery). Этот параметр позволяет автоматически фокусировать экземпляр редактора. Значение этой опции должно быть идентификатором экземпляра редактора. Идентификатор экземпляра редактора - это id
для исходного элемента textarea или <div>
, который был заменен.
Пример использования опции auto_focus
:
tinyMCE.init({
//...
auto_focus : "elm1"
});
tinyMCE.get('Description').getBody().focus();
Вышеописанное работает и в Firefox, Chrome и IE. Я не тестировал в других браузерах.
Для автоматической фокусировки в 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
Я использую следующую функцию для фокусировки редактора с помощью 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))
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);
});
Примечание: фокусировка на элементах не всегда работает, если вы откройте инструменты разработчика браузеров. Возможно, вы отклоняете фокус от страницы, потому что браузер может иметь только один фокус. Это решение, например, не работает, если у вас открыты инструменты разработчика.
Это должно передать фокус в текстовое поле TinyMCE:
$("#id_of_tinyMCE_area").focus();