使用jquery验证器验证具有相同名称的多个文本框仅验证第一个输入

alw*_*arn 6 forms jquery jquery-validate

我试图用jquery验证器验证具有相同名称的两个输入..

<script src='
            http://code.jquery.com/jquery-latest.min.js '></script>
            <script src='http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js'></script>
            <script>
            $(document).ready(function(){

            $('#frm').validate();

            $("[name=inp_text]").each(function(){
            $(this).rules("add", {
            required: true,
            checkValue: true
             });   
           });

                $.validator.addMethod("checkValue", function(value, element) {
                var response = ((value > 0)&&(value <= 100))||((value == 'test1')||(value =='test2'));
               return response;
               }, "invalid value");

            })

            </script>


            <form id='frm' method='post'>
            <input type='text' name='inp_text'/><br>
                <input type='text' name='inp_text'/><br>
            <input type='submit' name=''/>
            </frm>
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个代码时,它只验证第一个输入,第二个输入被简单地忽略

我也试过使用<input type='text' name='inp_text[]'/><br>但仍然没有工作.

我应该改变什么...?

提前致谢

Spa*_*rky 16

"我正在尝试使用jquery验证器验证具有相同名称的两个输入......"

<input type='text' name='inp_text'/>
<input type='text' name='inp_text'/>
Run Code Online (Sandbox Code Playgroud)

"但是,当我运行此代码时,它只验证第一个输入,第二个输入被简单地忽略"

你不能有两个相同或这个插件的input字段将无法正常工作.该属性必须是唯一的. (唯一的一个例外是,复选框或无线电输入的"分组"将与相应的提交共享相同的单点数据.但是,对于每个复选框和无线电元素,必须仍然是唯一的.)type="text"namenamenamenamename

"我应该改变什么......? "

使每个name属性都是唯一的

<input type='text' name='inp_text[1]'/>
<input type='text' name='inp_text[2]'/>
Run Code Online (Sandbox Code Playgroud)

然后使用"开始于"选择器,^=...

$("[name^=inp_text]").each(function () {
    $(this).rules("add", {
        required: true,
        checkValue: true
    });
});
Run Code Online (Sandbox Code Playgroud)

工作演示:http: //jsfiddle.net/PgLh3/

注意:您也可以id在使用rules('add')方法时定位元素,但是对于这种情况,没有解决任何问题,因为插件在每个元素上仍然需要唯一 .nameinput