2012-02-14 31 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')); 
     } 
    }); 
});