jQuery:如何确定一个或多个文本框是否为空

3
假设我有一组表单文本框,格式如下:
<input class="member" type="text" name="integrantes[]" />

为了验证,我需要确保所有这些文本框都包含一个值,如果没有则显示错误。

我的当前想法基本上是在外部设置值,例如:

var oneEmpty = false;
$(".member").each(function() { oneEmpty = oneEmpty || $(this).val() == "" });
if (oneEmpty) { etc }

然而,这并不是特别优雅的方法。因此,有没有更好的方法来解决这个问题?
3个回答

6
您可以简单地过滤掉所有非空输入,并检查是否还有任何输入留下:
var empties = $('.member').filter(function () {
    return $.trim($(this).val()) == '';
});
if (empties.length) { /* Error! */ }

过滤器正是我正在寻找的函数,但在其他所有东西之间不知何故错过了。谢谢。 - Mauricio
哇,这真是太优雅了。我花了大约一分钟才弄明白它的工作原理;迫不及待地想要通过第二天性来编写代码。 - bruchowski

4
如果您正在使用jQuery验证,只需在文本框输入上放置一个required类,它就会为您进行验证。 jQuery验证
<input class="member" type="text" name="integrantes[]" class="required" />

考虑到这个项目的范围(基本上是作业)和我需要验证的数量(2+x个字段),那感觉就像用火箭筒打鱼一样容易。另外,上次检查时,验证功能仍无法与1.5.1版本兼容。显然现在已经不是这种情况了。 - Mauricio
虽然这通常是更好的答案,但Box9给出了我想要的答案,所以我想这是一个最佳答案与被接受答案不同的情况。 - Mauricio

0
Kyte,我建议你使用jQuery validate,并在所有文本输入框上应用一个必填类。我还想象你可能也需要它来做其他事情。

同样。我相信这是一个重复的问题。 - user342706
1
@Kyle Rogers 我回答的是问题还是答案? - mcgrailm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接