我正在使用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);
?>
答案 0 :(得分:2)
我已经成功完成了以下插件,该插件在管理员屏幕上使用了几个可视化编辑器(只需要其中一些)。
我可以使用
设置字段的样式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;
}
答案 1 :(得分:1)
可视化编辑器不是textarea,它是iframe,即使如此 你可以设置一个它什么都不做的属性。你可以设置 隐藏的textarea上的属性将被发送到服务器但是 因为它是隐藏的,我不确定它是如何警告的 将显示填充,并且浏览器之间可能不同 (它是隐藏的,所以没有明显的视觉锚来显示 警报)
或者
您可以在编辑器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;
}