Как установить текстовое поле CKEditor5 не может быть пустым?

Я сейчас использую 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 для ввода. Это также может быть <i></i>

Существуют ли другие подходы, которые могут решить эту проблему?

2

Решение

была такая же проблема, придумали это:

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

}

работал на все мои испытания. одни только метки-полоски потерпели бы неудачу, если кто-то нажал несколько раз, затем отправил. Это только проверяет, есть ли у вас хотя бы один a-z, вы, возможно, захотите быть более строгим и иметь минимум или разрешить только цифры, но мы не знаем точно, что вы ожидаете здесь, так что это лучшее предположение.

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
}
0

По вопросам рекламы [email protected]