占位符 - 用于textarea输入

时间:2012-01-10 11:13:42

标签: javascript placeholder

我一直在使用JavaScript占位符脚本来支持IE占位符。

适用于输入类型=文本。但是如何在脚本中添加一个附加内容以支持textarea?

我的代码是:

function activatePlaceholders() {
var detect = navigator.userAgent.toLowerCase();
if (detect.indexOf("safari") > 0) return false;
var inputs = document.getElementsByTagName("input");
for (var i=0;i<inputs.length;i++) {
  if (inputs[i].getAttribute("type") == "text") {
   if (inputs[i].getAttribute("placeholder") && inputs[i].getAttribute("placeholder").length > 0) {
    inputs[i].value = inputs[i].getAttribute("placeholder");
    inputs[i].onclick = function() {
     if (this.value == this.getAttribute("placeholder")) {
      this.value = "";
     }
     return false;
    }
    inputs[i].onblur = function() {
     if (this.value.length < 1) {
      this.value = this.getAttribute("placeholder");
     }
    }
   }
  }
}
}
window.onload=function() {
activatePlaceholders();
}

提前致谢。

2 个答案:

答案 0 :(得分:4)

textarea不是输入类型。它本身就是一个标签。实施例

<textarea rows=10 placeholder="Enter text here"></textarea>

在这种情况下,您的代码可以是

var inputs = document.getElementsByTagName("textarea");
inputs[0].setAttribute('placeholder','New placeholder');

希望有所帮助

答案 1 :(得分:3)

只需查询文本区域元素

function activatePlaceholders() {
var detect = navigator.userAgent.toLowerCase();
if (detect.indexOf("safari") > 0) return false;
var inputs = document.getElementsByTagName("textarea");
for (var i=0;i<inputs.length;i++) {

   if (inputs[i].getAttribute("placeholder") && inputs[i].getAttribute("placeholder").length > 0) {
    inputs[i].value = inputs[i].getAttribute("placeholder");
    inputs[i].onclick = function() {
     if (this.value == this.getAttribute("placeholder")) {
      this.value = "";
     }
     return false;
    }
    inputs[i].onblur = function() {
     if (this.value.length < 1) {
      this.value = this.getAttribute("placeholder");
     }
    }
  }
}
}
window.onload=function() {
activatePlaceholders();
}