jquery验证数组输入错误

时间:2014-05-28 14:40:02

标签: jquery arrays input jquery-validate ignore

我有一个具有多个输入数组的表单,但我只想要一些必须的,你想要应用忽略忽略的类。问题是jquery验证检查所有必须的。我怎么能避免这个:

一个简单的例子:

HTML

<form id='register' name='register' method='post' action='' >   
enter code herearray1: <input type='text' name='name[]' id='name'/>
   input type 1: <input type='text' name='name[]' id='name'/>
   input type 1: <input type='text' class="noValidate" name='name[]' id='name'/>
   input type 1: <input type='text' name='name[]' id='name'/>

   <input type='submit' name='Submit' value='Submit' />

</form>

验证表单的功能

function ValidateFormNewContract()
{
    $('#formAltaContrac').submit(function(event)
    {
        event.preventDefault();
        $('#formAltaContrac').validate().settings.ignore = []; 
    });

    $('#formAltaContrac').validate(
    {
        ignore: ".noValidate",
        invalidHandler: function(e,validator) 
        {
            if(validator.errorList.length > 0)
            {
                var id = $(validator.errorList[0].element).parent().parent().parent().parent().parent()[0].id;
                $('a[href=#'+id+']').click();
                $(validator.errorList[0].element).focus();
            }
        },
        submitHandler: function(form) {
//            alert('enviado');
            SendNewContractData();
        },
        rules: {
            'name[]':{required: true},
//            
        }
    });
}

注意:我修改了jquery validate来执行验证数组输入,

验证数组输入使它们很好,但不要忽略类

和另一个问题,我怎样才能使跨度Feeding Fail jquery验证输入传播到阵列故障的其他输入?

1 个答案:

答案 0 :(得分:0)

您的代码......

enter code herearray1: <input type='text' name='name[]' id='name'/>
input type 1: <input type='text' name='name[]' id='name'/>
input type 1: <input type='text' class="noValidate" name='name[]' id='name'/>
input type 1: <input type='text' name='name[]' id='name'/>

1)最大的问题是所有输入元素都包含相同的name="name[]"。除了糟糕的语义之外,您无法复制name属性,因为插件使用它来跟踪输入元素。

2)就“忽略”输入而言,如果没有为输入指定rule,则不会评估输入。很简单,一旦你解决了上面的命名问题,这部分就会照顾好自己。