Javascript 表单验证-数组循环?

Javascript 表单验证-数组循环?,javascript,jquery,Javascript,Jquery,我有以下代码,运行良好: $('#register form .submit input').click(function(){ if(jQuery.trim($('#new-usr').val()) == '' || jQuery.trim($('#new-pwd').val()) == '' || jQuery.trim($('#new-pwd-confirm').val()) == ''){ alert('Please fill in every require

我有以下代码,运行良好:

$('#register form .submit input').click(function(){    
    if(jQuery.trim($('#new-usr').val()) == '' || jQuery.trim($('#new-pwd').val()) == '' || jQuery.trim($('#new-pwd-confirm').val()) == ''){
      alert('Please fill in every required field (marked with an asterisk)');
      return false;
    }    
  });
然而,我有更多的字段要添加到这里,并且我认为必须有一种方法将输入ID存储在一个数组中并在其中循环,而不是为每个ID添加
jquery.trim($('#inputid').val())=='

jQuery验证插件在这种情况下是不可使用的,因为这里的原因太无聊了,无法深入讨论。

尝试类似的方法(用于循环选择-不是真正的数组,但更易于维护):

尝试类似的方法(用于循环选择-不是真正的数组,但更易于维护):


您可以使用以下内容:


只需将所需的类添加到输入变量中,并使用jQuery循环它们。

您可以使用以下方法:

只需向输入变量中添加一个必需的类,然后使用jQuery循环它们。

尝试一下:

$('#register form .submit input').click(function(){    
    var success = true;
    $("#register form .required").each(function(){
        if(this.value === ""){
            success = false;
        }
    });
    if(!success){
        alert('Please fill in every required field (marked with an asterisk)');
        return false;
    };
});
并将所有必填字段设置为class
required

编辑 这应该比:

$('#register form .submit input').click(function(){    
    var success = true;
    $("#new-usr, #new-pwd, #new-pwd-confirm").each(function(){
        if(this.value === ""){
            success = false;
        }
    });
    if(!success){
        alert('Please fill in every required field (marked with an asterisk)');
        return false;
    };
});
尝试一下:

$('#register form .submit input').click(function(){    
    var success = true;
    $("#register form .required").each(function(){
        if(this.value === ""){
            success = false;
        }
    });
    if(!success){
        alert('Please fill in every required field (marked with an asterisk)');
        return false;
    };
});
并将所有必填字段设置为class
required

编辑 这应该比:

$('#register form .submit input').click(function(){    
    var success = true;
    $("#new-usr, #new-pwd, #new-pwd-confirm").each(function(){
        if(this.value === ""){
            success = false;
        }
    });
    if(!success){
        alert('Please fill in every required field (marked with an asterisk)');
        return false;
    };
});

我总是忘记
。each()
,谢谢。验证非常有效,但出于某种原因,它不会返回false。知道为什么吗?因为返回false是针对
每个
函数的,而不是针对
提交
function@red-X:谢谢你的提示,我错过了-你的解决方案显然是更好的。我总是忘记
。each()
,谢谢。验证非常有效,但出于某种原因,它不会返回false。知道为什么吗?因为返回false是针对
每个
函数的,而不是针对
提交
function@red-X:谢谢你的提示,我错过了-你的解决方案显然是更好的。我恐怕无法通过html添加类,因此无法使用验证插件,谢谢。@ScottBrown在这种情况下,你应该用一个选择器来替换
#注册表表单。required
,该选择器可以用另一种方式选择所有必填字段,比如
#new usr、#new pwd、#new pwd confirm
我恐怕无法使用html添加类,因此无法使用验证插件,谢谢。@ScottBrown在这种情况下,您应该将
#注册表表单.required
替换为一个选择器,该选择器可以以另一种方式选择所有必填字段,例如
#新usr、#新pwd、#新pwd confirm