0

我正在寻找一种使用 JavaScript 控制 textarea 的默认值、onfocus 和 onblur 的方法

(我知道:
- textarea 中的默认值是:<textarea name="text"> Default value </textarea>
- 有一些使用 html5 和 jQuery 的解决方案。但在这里我正在寻找一个纯 JavaScript 解决方案)

我可以将此应用于 textarea 吗?:

form name="form1" action="comprovar.php" method="post">
    <input type="text" name="name" value="name" 
        onfocus="if (this.value=='name') this.value = '';" 
        onblur="if (this.value=='') this.value = 'name';"   
    />
 </form>

我怎样才能在这里获得焦点和模糊?:

<textarea name="text">  Write here </textarea>

这个例子住在这里:http: //jsfiddle.net/sKvMa/

4

4 回答 4

2

您可以像从输入中一样拥有onfocus文本onblur区域上。看到这个演示:http: //jsfiddle.net/sKvMa/1/

<textarea name="text" 
    onfocus="if (this.value=='Write here') this.value = '';" 
    onblur="if (this.value=='') this.value = 'Write here';" >Write here</textarea>
于 2012-11-03T14:22:51.037 回答
1

您实际上可以完全不使用 JavaScript 来实现这一点,尽管它是 HTML5 的一个特性,因此它适用于现代浏览器。

<textarea name="text" placeholder="Write here"></textarea>

根据您使用占位符的目的,这可能适合您,因为实现和维护脚本解决方案要简单得多。

于 2012-11-03T14:25:24.430 回答
1

在新浏览器中,您可以使用placeholder属性。jsfiddle 对于不支持 placeHolder 的浏览器

    if( !'placeholder' in document.createElement("input") ){

        var input =  document.getElementsByTagName("input"),
            textArea = document.getElementsByTagName("textarea");
    for(var k = 0; k < input.length; k++){
         input[k].value= "name";
        input[k].onblur = function(){
            if(this.value == "") this.value = "name"
        }
        input[k].onfocus = function(){
            if(this.value == "name") this.value = ""
        }
    }
    for(var k = 0; k < textArea .length; k++){
          textArea [k].value= "name";
        textArea [k].onblur = function(){
            if(this.value == "") this.value = "name"
        }
        textArea [k].onfocus = function(){
            if(this.value == "name") this.value = ""
        }
    }
}
​​
于 2012-11-03T14:26:55.573 回答
0

或者你可以像这样从 jQuery 定位

var mytext = $("textarea[name='text']").val();

然后你可以比较文本

if (mytext == 'Write here')
  //do this
else
  //do that
于 2012-11-03T14:24:34.613 回答