如何使羽毛笔编辑器成为必需的?

How to make quill editor required?

如何让quill editor字段成为必填项?编辑器呈现为 div,但不清楚是否有办法在表单提交时使 field/editor 成为必需。

如您所写,Quill 使用 div 而不是表单元素,因此它无法帮助您进行表单验证。 您将需要手动检查编辑器的内容是否为空,阻止用户提交表单并显示此字段为必填项的消息。

您可以在提交表单之前将羽毛笔内容复制到隐藏的输入元素,如此 example

自定义表单控件也是一个不错的选择。您可以尝试使用 Quill 的事件处理程序解决问题并获取表单的值。 然后自定义表单验证器也是可能的。

检查:https://blog.thoughtram.io/angular/2016/07/27/custom-form-controls-in-angular-2.html

我今天也一直在尝试解决这个问题,使用 Python 作为后端并使用隐藏的表单字段 (name='editor') 从套筒容器到后端。最终不是真正的验证器,但工作大致相同:

if request.form['editor'] == '\"<p><br></p>\"':
    flash("You cannot send in empty posts!")
    return redirect(CURRENT PAGE) 
else:
    CODE EXECUTED IF EDITOR IS NOT EMPTY

不确定您对编辑器的输入做了什么,或者您是否甚至在后端使用 Python,但我希望这对您有所帮助。 "<p><br></p>" 控制台告诉我空提交时的标准输入是从编辑器中获取信息时的内容。

祝你好运!

const yourText = '<div><br></div>';

const htmlTagsToRemove = ['<div>', '</div>', '<br>'];

function removeHtmlTags(data) {
  let text = data;

  htmlTagsToRemove.forEach(it => {
    text = text.replace(it, '');
  });
  return text;
}

const newText = removeHtmlTags(yourText);
console.log(newText);