Я сейчас использую 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>
Существуют ли другие подходы, которые могут решить эту проблему?
была такая же проблема, придумали это:
if(preg_match("/[a-z]/i", strip_tags($post_content))){
}
работал на все мои испытания. одни только метки-полоски потерпели бы неудачу, если кто-то нажал несколько раз, затем отправил. Это только проверяет, есть ли у вас хотя бы один a-z, вы, возможно, захотите быть более строгим и иметь минимум или разрешить только цифры, но мы не знаем точно, что вы ожидаете здесь, так что это лучшее предположение.
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
}