Textarea 占位符文本

Posted

技术标签:

【中文标题】Textarea 占位符文本【英文标题】:Textarea placeholder text 【发布时间】:2014-09-15 19:05:43 【问题描述】:

努力理解为什么我的文本区域中的占位符没有显示输入。

<textarea value="Begin your message..." onfocus="ClearPlaceHolder (this)" onblur="SetPlaceHolder (this)" class="contactForm" ></textarea>    

<script type="text/javascript">
    function ClearPlaceHolder (input) 
        if (input.value == input.defaultValue) 
            input.value = "";
        
    
    function SetPlaceHolder (input) 
        if (input.value == "") 
            input.value = input.defaultValue;
        
    
</script> 

我将替换它在此脚本中输入的位置绑定,但它并没有改变任何东西?

【问题讨论】:

【参考方案1】:

为什么不直接使用 html 占位符呢?

<textarea placeholder="Please type something here..."></textarea>

我认为我会更优雅,它不需要任何 JS。

【讨论】:

【参考方案2】:

这是因为textarea没有value属性。textareas 值位于开始标签和结束标签之间:

<textarea onfocus="ClearPlaceHolder(this)" 
          onblur="SetPlaceHolder(this)" 
          class="contactForm">Begin your message...</textarea>

Fiddle

【讨论】:

【参考方案3】:

你可以使用属性placeholder:

<textarea placeholder="placeholder string"></textarea>

【讨论】:

我不能使用 html5,因为网站的主要受众是 IE 用户。 (可悲的是老 IE 用户)【参考方案4】:

还要记住 textarea 没有价值 attribute 你可以在http://www.w3schools.com/tags/tag_textarea.asp中读到 值是一个属性,因此您使用的语句对于将文本放入文本区域是正确的

input.value = "text";

但请记住,创建和更改值属性不会更改值属性

【讨论】:

以上是关于Textarea 占位符文本的主要内容,如果未能解决你的问题,请参考以下文章

在 Safari 中居中 textarea 占位符文本

如何根据它是不是是占位符来更改 textarea 文本的颜色?

更改文本区域的占位符文本颜色

Textarea占位符未显示[重复]

Html 文本区域占位符

textarea占位符中的引号