Javascript 检查所有输入字段是否已用jQuery填写

Javascript 检查所有输入字段是否已用jQuery填写,javascript,jquery,Javascript,Jquery,我有3个div,每个div都有一个dfew输入字段和next按钮。 我想编写一段jQuery代码,当单击next按钮时,它会检查以确保与按钮位于同一div中的所有输入字段都不为null 我已经尝试了以下没有运气,但我100%肯定它错了,只是我不能找到相关的信息在线 您可以使用将所有输入元素集缩减为空元素,并检查剩余元素的长度属性: $(".next").click(function() { var empty = $(this).parent().find("input").filter

我有3个div,每个div都有一个dfew输入字段和next按钮。 我想编写一段jQuery代码,当单击next按钮时,它会检查以确保与按钮位于同一div中的所有输入字段都不为null

我已经尝试了以下没有运气,但我100%肯定它错了,只是我不能找到相关的信息在线

您可以使用将所有
输入
元素集缩减为空元素,并检查剩余元素的
长度
属性:

$(".next").click(function() {
    var empty = $(this).parent().find("input").filter(function() {
        return this.value === "";
    });
    if(empty.length) {
        //At least one input is empty
    }
});
请注意,上面代码中empty的定义是一个空字符串。如果要将空格也视为空,则可能需要在比较之前修剪该值

还要注意的是,不需要将
这个
传递到
过滤器
函数中的jQuery中。DOM元素本身将有一个
属性,访问该属性比使用
val
要快得多


这里有一个.

因为在这种情况下没有jQuery选择器,所以您可以扩展jQuery的选择器功能

假设选择了所有图元,则扩展名为:

$.extend($.expr[':'],{
     isEmpty: function(e) {
         return e.value === '';
     }
});
因此,您可以选择所有空文本字段:

$(this).closest('div').find(':text:isEmpty');
$.extend($.expr[':']{
isEmpty:函数(e){
返回e.value=='';
}
});
$('.next')。单击(函数(){
var missingRequired=$(this).closest('div').find(':text:isEmpty');
log('空文本字段:'+missingRequired.length);
});










谢谢@garvey!,有没有一种方法可以说,如果任何输入为空,则抛出一个警报,以防止循环?我如何也包含选择?这将说明即使没有空输入,也有空输入,因为它查看的是
属性,而不是属性。我不明白?由于我对jQuery没有我应该精通的那么多,您介意解释一下吗?您已经使用了一个属性选择器来查找
属性等于空字符串的元素。
属性是在元素本身上定义的:
。由于所讨论的
input
元素都没有
value
属性,因此您的代码总是会说它们都是空的。没问题,很高兴我能提供帮助:)如何将其用于带有输入文本和select的表单?
$.extend($.expr[':'],{
     isEmpty: function(e) {
         return e.value === '';
     }
});
$(this).closest('div').find(':text:isEmpty');