2010-01-10 122 views
2

我想同樣的功能,爲2名jQuery的對象上運行:$('input[type="text"]')$('textarea[type=text]')。我怎樣才能在下面的代碼中結合這兩個? (目前只包括輸入)。多的jQuery的功能相同對象

$('input[type="text"]').focus(function() { 
     if (this.value == this.defaultValue){ 
      this.value = ''; 
     } 
     if(this.value != this.defaultValue){ 
      this.select(); 
     } 
}); 

$('input[type="text"]').blur(function() {  
     if ($.trim(this.value == '')){ 
      this.value = (this.defaultValue ? this.defaultValue : ''); 
     } 
}); 

謝謝!

+1

爲什麼你的'textarea'有'類型= text'?這是不是一個'textarea' – 2010-01-10 21:26:33

+0

Didn't知道,一個有效的屬性。我的目標現在是$(「文本區域」) – 2010-01-10 21:34:40

回答

9

試試這個:

$('textarea[type="text"], input[type="text"]').focus(...).blur(...); 

同樣你也可以使用jQuery的add功能:

$('textarea[type="text"]').add('input[type="text"]').focus(...).blur(...); 
+0

謝謝! .add方式對我來說效果最好。 – 2010-01-10 21:33:15

1

可能更容易通過把一個類上它和過濾器。

0

您可以創建一個插件:

jQuery.fn.clearDefValueOnFocus = function() { 
    return this.focus(function(){ 
     if (this.value == this.defaultValue){ 
      this.value = ''; 
     } 
     if(this.value != this.defaultValue){ 
      this.select(); 
     } 
    }).blur(function(){ 
     if (jQuery.trim(this.value) == ''){ 
      this.value = this.defaultValue || ''; 
     } 
    }); 
}; 

$('input[type="text"]').clearDefValueOnFocus(); 
$('textarea[type=text]').clearDefValueOnFocus();