【问题标题】:Placeholder Text in TextArea not showing properly [duplicate]TextArea 中的占位符文本未正确显示[重复]
【发布时间】:2019-02-08 23:46:36
【问题描述】:

当我使用 php 变量设置我的 textarea 的占位符时,它会在空格处被截断。

【问题讨论】:

  • edit您的问题将您的代码添加为文本,而不是图像。您可以使用类似 { } 的按钮或使用 Control + K 轻松格式化代码。

标签: php html


【解决方案1】:

我想你忘记了双引号。试试

<textarea
   placeholder="<?php echo htmlentities($comments); ?>"
   rows="6"
   cols="35"
   name="comments"
   maxlength="20"
></textarea>

【讨论】:

    【解决方案2】:

    你应该使用:

    placeholder="<?php echo htmlentities($comments); ?>"
    

    如果您的 $comments 变量包含空格或引号,它们将被转义。 您可以查看 htmlentities 文档here

    【讨论】:

      【解决方案3】:

      只是添加到其他答案的一点解释:

      placeholder 是一个属性。属性值可以不加引号,但如果它包含任何空格,则只有字符串中的第一个单词会被解释为属性值。之后的任何其他词都将被解释为附加属性。如果您查看页面源代码,您会看到整个$comments 字符串都在那里。

      <textarea placeholder=word other words></textarea>
      

      看看这里的语法高亮。注意“其他”和“单词”如何像“占位符”一样是红色的?

      <textarea placeholder='word other words'></textarea>
      <textarea placeholder="word other words"></textarea>
      

      现在它们是价值的一部分。

      Either single quotes or double quotes are fine.你只需要一些东西来将单词组合在一起,这样浏览器就不会认为你给了它额外的属性。

      【讨论】:

        【解决方案4】:

        问题应该是:

        <textarea placeholder="<?php echo $comments; ?>">...
        

        好像有人想让我解释一下。要了解这里发生的事情是您正在混合两种语言。在一层有 HTML。在发送到浏览器之前,它会通过 PHP 处理器发送。处理完后,在不带引号的原始问题上以及在浏览器进行解析之前,它将看起来像这样。

        <textarea placeholder=word other words>...
        

        浏览器自动引用 HTML 并将其解释为

        <textarea placeholder="word" "other" "words">...
        

        这就是为什么您需要在 PHP 代码周围添加引号的原因。这就是为什么它只显示第一个值。当它有引号时,浏览器会将字符串中的所有间隔元素合并为占位符的值。

        <textarea placeholder="word other words">...
        

        让我知道是否需要进一步澄清或是否有更好的解释方式。

        【讨论】:

        • 这有帮助吗?
        猜你喜欢
        • 2015-06-27
        • 2021-03-04
        • 2022-10-16
        • 2015-07-19
        • 2018-10-30
        • 2014-09-15
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        相关资源
        最近更新 更多