Я работаю над формой интерфейса для WordPress, и я добавил wp_editor
для текстовой области в моей форме ниже приведен код, который я добавил. Можно ли как-то пометить это поле как обязательное поле так же, как обязательный параметр HTML5?
<?php
$settings = array(
'wpautop' => false,
'media_buttons' => true,
'textarea_rows' => 5,
'tinymce' => true,
'teeny' => true,
'textarea_name' => 'main_Content',
'quicktags' => false,
'editor_height' => 300
);
$content = '';
$editor_id = 'main_Content';
wp_editor(stripslashes($content), $editor_id, $settings);
?>
Я успешно выполнил следующее для плагина, который использует несколько визуальных редакторов (только некоторые из которых требуются) на экране администратора.
Я могу стилизовать поле, используя
textarea[required]:invalid
и форма генерирует ошибку, если она отправляется, когда это поле пустое (хотя я до сих пор тестировал только в Safari 10.1).
Пример кода ниже (этот код был взят из гораздо большего класса).
Сначала отрывок из функции, которая создает редактор.
$addlClass = ($required) ? 'my-required-field' : '';
$settings = array(
'media_buttons' => false,
'textarea_name' => $fieldName,
'editor_class' => $addlClass
);
wp_editor($cleanFld, $fieldId, $settings);
Тогда мой крюк:
add_action('the_editor', array($this, 'CheckIfEditorFieldIsRequired'));
Наконец, эта функция:
public function CheckIfEditorFieldIsRequired($editorMarkup)
{
if (stripos($editorMarkup, 'my-required-field') !== false) {
$editorMarkup = str_replace('<textarea', '<textarea required', $editorMarkup);
}
return $editorMarkup;
}
Визуальный редактор — это не текстовая область, это iframe, поэтому даже если
Вы можете установить атрибут, он ничего не будет делать. Вы можете установить
атрибут скрытой текстовой области, которая будет отправлена на сервер, но
так как это скрыто, я не уверен, как оповещение об этом не
заполненный будет отображаться, и он может отличаться в разных браузерах
(он скрыт, поэтому нет очевидной визуальной привязки для отображения
оповещение)или еще
Вы можете добавить фильтр в редактор HTML
add_filter( 'the_editor', 'add_required_attribute_to_wp_editor', 10, 1 );
function add_required_attribute_to_wp_editor( $editor ) {
$editor = str_replace( '<textarea', '<textarea required="required"', $editor );
return $editor;
}