手动Jquery验证输入数组元素

时间:2011-08-08 10:00:22

标签: javascript jquery

<input type="text" name="member_name[]" size="13" value="">  
<input type="text" name="member_name[]" size="13" value="">
<input type="text" name="member_name[]" size="13" value="">
<input type="text" name="member_name[]" size="13" value="">

如何验证这4个字段,使它们不是空白..不使用jquery validate plugin。?

5 个答案:

答案 0 :(得分:3)

如果您的某个字段为空,则可以通过注册submit事件处理程序和prevent the default behavior来取消表单提交:

$("form").submit(function(event) {
    if ($("input:text[name='member_name\\[\\]'][value='']", this).length) {
        window.alert("No member name should be empty.");
        event.preventDefault();
    }
});

编辑:正如naveen正确指出的那样,如果字段只包含空格,上面的代码仍会提交表单。您可以$.trim()filter()一起使用来解决问题:

$("form").submit(function(event) {
    if ($("input:text[name='member_name\\[\\]']", this).filter(function() {
            return $.trim(this.value) == "";
        }).length) {
        window.alert("No member name should be empty.");
        event.preventDefault();
    }
});

答案 1 :(得分:2)

$('input:submit').click(function() {
    $('form').submit(function(e) {
        $("input:text[name^='member_name']").each(function() {
            if (!$.trim($(this).val()).length) {
                alert('Name Field should not leave empty');
                return false; // or e.preventDefault();
            }
        });
    });
});

答案 2 :(得分:1)

var valid = true;
$('input').each(function(){
  if($(this).val() == "") {
     valid = false;
  }
});

// use valid here

答案 3 :(得分:1)

var invalidInputs = $('input').filter(function() {
    return $(this).val() == "";
});

var valid = invalidInputs.length == 0

答案 4 :(得分:0)

不是最先进的,而是简单的&amp;明确的方法。

 $("form").submit(function(event) {

    var inputLength = $('input[type="text"]').val().length;  // check for value length

    if ($('input').val().length > 0) {
        // submit if input value is length > 0 
        alert('Form submitted.');
    }
    else {
        // error if input value is NOT length > 0 
        alert('Fill the form.');
        event.preventDefault();
    }
});