2012-02-14 63 views
0

我试图在输入标签内使用onfocus和onblur来清除输入文本,但是我打算在很多领域使用它,所以我找到了这个JQuery函数,但我似乎无法使其工作。如何使用这个JQuery函数清除输入文本?

$('.default-value').each(function() { 

    var default_value = this.value; 

    $(this).focus(function(){ 
      if(this.value == default_value) { 
        this.value = ''; 
      } 
    }); 

    $(this).blur(function(){ 
      if(this.value == '') { 
        this.value = default_value; 
      } 
    }); 
}); 

我试图把这里面的脚本标签head标签里面,我添加了一个类的默认值的,以我要清除的输入,但它不工作。

所以我做错了什么?我不知道JavaScript和我链接到最新的JQuery。

,并感谢

+0

如果你只支持“好”的浏览器,你可以做'' – karim79 2012-02-14 14:58:35

+1

需要在你的问题的HTML代码。还需要描述你想要它做什么以及它做什么 – Alfabravo 2012-02-14 14:59:18

+0

我知道我在使用占位符,但我打算用它代替旧版浏览器 – Pierre 2012-02-14 15:03:59

回答

3

好像你正在重新发明@placeholder这里。

只需使用HTML这样的:

<input type="text" placeholder="foo bar"> 

这在最现代的浏览器支持。

然后,使用polyfill确保旧版浏览器获得类似的行为。我已经写了一个在jQuery插件格式,如果你有兴趣:

$('input, textarea').placeholder(); 

这里有一个演示:http://mathiasbynens.be/demo/placeholder

+0

请注意,'placeholder'属性是一个HTML5功能。 – 2012-02-14 15:01:34

2

我不认为这会工作http://mths.be/placeholder

如下使用它因为关闭。 您需要记住每个字段的默认值。 例如

$('.default-value').each(function() { 

    $(this).attr('default_value',$(this).val()); 

    $(this).focus(function(){ 
     if($(this).val() == $(this).attr('default_value')) { 
       $(this).val(''); 
     } 
    }); 

    $(this).blur(function(){ 
     if($(this).val() == '') { 
       $(this).val($(this).attr('default_value')); 
     } 
    }); 
});