如何使用此JQuery函数清除输入文本?

时间:2012-02-14 14:56:42

标签: javascript jquery html

我试图在输入标签内使用onfocus和onblur来清除输入文本,但是我将在许多字段中使用它,所以我发现了这个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标记内,并且我在要清除的输入中添加了一类default-value,但它不起作用。

所以我做错了什么?我不知道javascript,我正在链接到最新的JQuery。

并谢谢

2 个答案:

答案 0 :(得分:3)

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

只需使用这样的HTML:

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

大多数现代浏览器都支持此功能。

然后,使用polyfill确保旧浏览器获得类似的行为。如果您有兴趣,我用jQuery插件格式编写了一个:http://mths.be/placeholder

按如下方式使用:

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

以下是演示:http://mathiasbynens.be/demo/placeholder

答案 1 :(得分:2)

我认为这不会因为关闭而起作用。 您需要记住每个字段的默认值。 e.g。

$('.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'));
       }
   }); 
});