2

我现在正在使用 CKEditor5

文本区域是:

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

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

然后我试图阻止我的表单向数据库发送内容,如果它是空的:(PHP)

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

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

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

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

<p></p>

使用 CKEditor 进行输入时,它取决于字体样式。它也可以<i></i>

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

4

2 回答 2

2

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

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

}

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

于 2018-03-26T01:13:31.943 回答
0
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
}
于 2018-03-26T03:34:30.070 回答