2010-11-24 58 views
3

我想計算我的表單中的所有輸入爲空。對於空的我的意思是它的值在修剪它的值後是空的(如果用戶插入空格也是空的)。 這個jQuery指望他們,但不包括修剪:是否可以在選擇器中進行修剪?

$(':text').filter('[value=""]').length 

擁有jQuery的東西可以用來在選擇修剪?

感謝

回答

11
$(':text').filter(function() { 
    return $.trim($(this).val()).length === 0; 
}); 
+0

+1打我給它。 ;) – Stephen 2010-11-24 19:32:54

9

而在@ Domenic的回答是一個很好的辦法the .filter() method,我想不同的方式實現這一點。

例子:http://jsfiddle.net/patrick_dw/mjuyk/

$('input:text').filter(function() { 
    return !$.trim(this.value); 
}); 
  • 應指定input:text。否則,jQuery需要在DOM中每元素觀察以查看它是否爲type='text'。 (See the docs.
  • 因爲這些是文本輸入,因此使用this.value$(this).val()更快。
  • 因爲空字符串是錯誤的,所以不需要獲取length屬性。所以只需使用!運算符。

或者你可以使用的.filter()倒數,這是the .not() method

例子:http://jsfiddle.net/patrick_dw/mjuyk/1/

$('input:text').not(function() { 
    return $.trim(this.value); 
}); 

此外,您還可以創建這樣一個自定義選擇這個:

例子:http://jsfiddle.net/patrick_dw/mjuyk/2/

$.extend($.expr[':'], { 
    novalue: function(elem, i, attr){ 
     return !$.trim(elem.value); 
    } 
}); 

$('input:text:novalue') 
相關問題