2010-02-04 83 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