为什么我的HTML文本区域中有空白,而我的文本区域中有占位符?

为什么我的HTML文本区域中有空白,而我的文本区域中有占位符?,html,wordpress,css,Html,Wordpress,Css,在WordPress中,我有自定义表单,下面是文本区域: <textarea type="text" name="text" rows="4" placeholder="message here"><?php echo esc_textarea($_POST['text']); ?></textarea> 但是,textarea在浏览器中显示空白。 通过在文本区域内选择并删除空格来清除文本区域后,它将显示占位符文本 附加图像:您在$\u POST['te

在WordPress中,我有自定义表单,下面是
文本区域

<textarea type="text" name="text" rows="4" placeholder="message here"><?php echo esc_textarea($_POST['text']); ?></textarea>

但是,
textarea
在浏览器中显示空白。 通过在
文本区域内选择并删除空格来清除
文本区域后,它将显示
占位符
文本


附加图像:

您在
$\u POST['text']
中有什么内容?你应该确定,那真的是空的

也许最好使用:

<textarea type="text" name="text" rows="4" placeholder="message here">
  <?php if (isset($_POST['text']) && !empty($_POST['text'])) {
    echo $_POST['text'];
  }; ?>
</textarea>

为什么我的HTML文本区域中有空白,而我的文本区域中有占位符

因为
esc_textarea($\u POST['text'])
的返回值不是空字符串

通过在文本区域内选择并删除空白来清除文本区域后,将显示占位符文本

空格、新行和其他空白都是数据。它们算作一种价值

如果有值,则会显示该值。仅当没有值时才会显示占位符

正如您所发现的,删除该值将导致显示占位符。

使用以下方法:

<textarea type="text" name="text" rows="4" placeholder="message here"><?php echo trim(esc_textarea($_POST['text'])); ?></textarea>


尝试过之后,仍然遇到同样的问题。有趣的是,这只发生在FireFox中。尝试过Opera&IE,此问题不存在。我已测试过删除
,但此问题仍然存在。此问题仅在FF中存在。Opera、Edge和IE都很好。@theKing-我无法重现你描述的问题:我同意;但这很奇怪。