2010-02-04 119 views
7

我正在通過$ .ajax提交一些評論。不過,我想檢查一下,確保在輸入框中輸入了一些內容。如果用戶離開輸入空白使用jQuery檢查空白輸入

if ($("#comments").val().length != 0){ 

但是這隻能,如果留下一個空間或返回,然後它會通過:目前我使用的這個。如果能夠改善這一點,我該如何?

回答

11

刪除空白:

if ($("#comments").val().replace(/^\s+|\s+$/g, "").length != 0){ 
+0

這會比僅使用修剪更有用嗎? – Chris 2010-08-16 12:28:12

+1

@Chris - no - 我只是不知道jQuery的trim功能。 – 2010-08-16 12:39:12

8

你可能會去trim功能... google給我們一些不錯的鏈接。 btw ... jQuery確實有一個trim-function

例如。檢查空之前

var trimmedValue = jQuery.trim($('#comments').val()); 
if (trimmedValue.length > 0) { 
    // TODO 
} 
+0

未經測試,但我認爲你可以走得更遠,並做jQuery.trim($(「#comments」).val()).length,因爲trim無論如何返回一個字符串。不是額外的變量真的會傷害任何東西。 – thismat 2010-02-04 06:31:56

+0

因爲我總是引入額外的變量的朋友,有一些調試的可能性,我會離開它的方式:) – 2010-02-04 06:33:46

+0

不能爭辯說。如果我不會重複使用它,我只是習慣於避免額外變量(好或壞)。如果你要驗證實際的內容,我可以看到重用這個好例子。 – thismat 2010-02-04 06:38:43

1

在JavaScript

//Following all return true 
"" == false 
" " == false 
" " == false 
" " == false 
//Not related to question but interesting 
//Following all (also) return true 
!" " == false 
!" " == false 
!" " == false 
//Except 
!"" == false //returns false 

(驗證與Firebug的控制檯和Chromium的開發工具控制檯)。

+0

我不同意你:http://jsfiddle.net/cn2YH/ – jerone 2010-08-16 12:25:01

+0

@jerone不要試圖用「!」運營商。查看更新的答案。 – 2010-08-16 12:33:07

+0

好的,aldo這是一個非常奇怪的方式來檢查一個聲明,我給你,它的工作原理:http://jsfiddle.net/cn2YH/2/ – jerone 2010-08-16 14:51:08

1

我知道這是一個令人難以置信的遲到的答案,但我用這...

var self = $(this).val(); 
if (!self || self[0] == ' '){ 
    //////do something 
} 

和它工作得很好!希望別人可以從中獲得一些用處!

+0

這不是一個好主意。當用戶輸入「有效字符串」時,情況如何?你可能不想放棄。 – 2012-11-29 10:06:44

+0

我想這是可能的,但爲什麼會有人想爲他們的第一個字符空值? – 2012-12-04 23:15:25

+0

或者我應該說需要一個空值而不是想要的。 – 2012-12-04 23:17:03