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

Я использую 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>

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


person gdmorning    schedule 26.03.2018    source источник


Ответы (2)


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

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

}

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

person Community    schedule 26.03.2018
comment
для вашего решения, как насчет: if (preg_match (/ [a-zA-Z] \ d / i, strip_tags ($ post_content))) {} для проверки как верхнего, так и нижнего регистра, а также числа 0–9? - person gdmorning; 26.03.2018
comment
вы мне скажите, это ваш вопрос. но / i нечувствителен к регистру, поэтому нужно использовать a-zA-Z и / i, просто выберите один - person ; 26.03.2018

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
}
person sameer Ahmed    schedule 26.03.2018
comment
игнорирует проблему с возвращением только html - person ; 26.03.2018