我一直在使用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();
}
提前致谢。
答案 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();
}