Textarea占位符文本

时间:2014-07-24 09:34:18

标签: javascript html forms placeholder

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

<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> 

我在这个脚本中将输入替换为输入,但它没有改变任何东西?

4 个答案:

答案 0 :(得分:4)

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

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

在我看来,我会更优雅,而且不需要任何JS。

答案 1 :(得分:3)

这是因为textarea没有属性value textarea的值介于开始和结束标记之间:

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

Fiddle

答案 2 :(得分:1)

您可以使用属性placeholder

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

答案 3 :(得分:1)

另请注意,textarea没有值属性,因为您可以在http://www.w3schools.com/tags/tag_textarea.asp中阅读 值是属性,因此您使用的语句对于将文本放入文本区域

是正确的
input.value = "text";

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