表单验证 - 数组循环?

时间:2011-12-05 11:03:20

标签: 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 required field (marked with an asterisk)');
      return false;
    }    
  });

但是,我还有很多字段可以添加到此,并且认为必须有一种方法可以将输入ID存储在数组中并循环遍历它们,而不是为每个字段添加jquery.trim($('#inputid').val()) == ''

jQuery验证插件在这个例子中是禁止的,原因太无聊了。

3 个答案:

答案 0 :(得分:4)

尝试一下:

$('#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;
    };
});

并为所有必填字段提供课程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;
    };
});

答案 1 :(得分:1)

尝试这样的事情(使用.each()循环选择 - 不是真正的数组,但更容易维护):

$('#register form .submit input').click(function(){ 
  // add IDs here
  //     vvv  
  $('#new-usr, #new-pwd, #new-pwd-confirm').each(function(){
    if($(this).val()) == ''){
      alert('Please fill in every required field (marked with an asterisk)');
      return false;
    }
  }); 
});

答案 2 :(得分:1)

您可以使用以下内容:

http://jsfiddle.net/UDCWB/

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