2011-04-08 81 views
1

使用jQuery如何检查所有输入字段(EXCL隐藏字段)和textareas是否为空?我不知道如何 “环” 会通过各种表单字段和检查:jQuery检测输入字段为空

$( “输入”)VAL() 和 $(“textarea的).VAL()

这是运行一个函数,应该只有“工作”,如果所有的表单字段为空

回答

4

去像这样loop

$('input, textArea').each(function(){ 
    if($.trim($(this).val()) == ''){ 
     console.log(this,'is empty'); 
    } 
}); 
0

有很多方法可以实现这一点。

$('#form-id input').blur(function() 
{ 
if(!$(this).val()) { 
     // Do whatever you need to do 
} 
}); 

$("input, textarea").each(function() { 
if($(this).val() === "") 
    alert("Empty Fields!!"); 
}); 
1

我想说扩展jQuery的使用:blank伪类

采取从流行jquery.validate.js的摘录:

(function($) { 
    $.extend($.expr[":"], { 
     // http://docs.jquery.com/Plugins/Validation/blank 
     blank: function(a) { 
      return !$.trim(a.value); 
     }, 
    }); 
})(jQuery); 

那么你可以使用一个选择像

$("input:blank") 

如果你做的比你可以考虑使用jQuery验证插件

bassistance.de » jQuery plugin: Validation

5

随你挑只检查空白较多,但在这里它是在短短的几行,以验证所有字段,而不仅仅是一个:

var allBlank = true; 
$('input, textarea').each(function() { 
    return allBlank = allBlank && !$(this).val(); 
}); 

当然,您可以修改选择器以指定所需的字段。然后继续:

if(allBlank) { 
    //all are blank. congrats. 
} 

编辑:现在更多的性能!

+1

+1这里是使用布尔“标志”的唯一答案,但它可以通过在找到具有值的元素时跳出循环来改进 - 在迭代更多元素时没有点。 – 2011-04-08 19:16:48

+0

对不起。错过了“回归”。谢谢。 – 2011-04-08 19:23:17