【问题标题】:How to set CKEditor5 textarea cannot be empty?如何设置CKEditor5 textarea不能为空?
【发布时间】:2018-09-04 01:49:30
【问题描述】:

我现在正在使用 CKEditor5

文本区域是:

<textarea class="form-control" name="post_content" rows="10" cols="30" id="editor"></textarea>

我想设置这个不能为空的字段所以尝试了我的'required'属性,但是它使表单无法发送出去(到数据库)。

然后,如果表单为空,我尝试停止向数据库发送内容:(PHP)

if(!empty($post_content))
{
   ...create query and send query to  database...
}
else
{
   do nothing
}

但是,我仍然可以将空内容发送到数据库。

因为即使我提交的是空内容,它也会向数据库发送一些 html 标签。

在数据库中,我可以看到列单元格中存储有html标签,如

<p></p>

使用 CKEditor 进行输入时,它取决于字体样式。也可以是&lt;i&gt;&lt;/i&gt;

还有其他方法可以解决这个问题吗?

【问题讨论】:

    标签: javascript php jquery html ckeditor5


    【解决方案1】:

    遇到了同样的问题,想出了这个:

    if(preg_match("/[a-z]/i", strip_tags($post_content))){
    
    }
    

    完成了我所有的测试。如果有人按了几次输入然后提交,则仅剥离标签就会失败。这仅检查您是否至少有一个 a-z,您可能希望更加严格并有一个最小值,或者只允许数字,但我们不知道您在这里的期望是什么,因此这是一个最佳猜测。

    【讨论】:

    • 对于您的解决方案,如何: if(preg_match("/[a-zA-Z]\d/i", strip_tags($post_content))){} 检查大写和小写, 也是数字 0-9 ?
    • 你告诉我,这是你的问题。但是 /i 不区分大小写,因此需要 a-zA-Z 和 /i 只需选择一个
    【解决方案2】:
    if ($("#editor").val()) {
        // textarea is not empty
       //...create query and send query to  database...
    }
    else{
     //do nothing
    }
    

    您还可以使用 $.trim 删除空格:

    if ($.trim($("#editor").val())) {
        // textarea is not empty or not contains  white-space
        //...create query and send query to  database...
    }
    else{
       //do nothing
    }
    

    【讨论】:

    • 忽略了只返回html的问题
    猜你喜欢
    • 2022-10-16
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 2017-10-03
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多