validation与jqueryvalidation程序具有相同名称的多个文本框只validation第一个input

我想validation与jqueryvalidation器具有相同名称的两个input。

<script src=' jquery-1.11.1.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> 

但是当我运行这个代码时,它只validation第一个input,第二个input被忽略

我也尝试使用<input type='text' name='inp_text[]'/><br>但仍然无法正常工作。

我应该改变什么…?

提前致谢

“我正在validation与jqueryvalidation器具有相同名称的两个input…”

 <input type='text' name='inp_text'/> <input type='text' name='inp_text'/> 

“但是当我运行这个代码时,它只validation第一个input,第二个input被忽略”

你不能有两个同名的type="text" input字段,否则这个插件将无法正常工作。 name属性必须是唯一的。

“我应该改变什么…?

使每个name属性唯一。

 <input type='text' name='inp_text[1]'/> <input type='text' name='inp_text[2]'/> 

然后使用“开始”select器, ^=

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

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

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

像下面的规则或消息添加configuration

 multipleInputSharedName: { inp_text: true } 

更改jquery.validate.js中的代码方法名称:元素

replace如下

 if ( this.name in rulesCache || !validator.objectLength( $( this ).rules() ) ) { return false; } 

与以下

 if ( (!validator.settings.multipleInputSharedName[this.name] && this.name in rulesCache) || !validator.objectLength( $( this ).rules() ) ) { return false; } 

是的,JQueryvalidation将只validation第一次出现。 您使用不同的文本框名称。 或者您可以使用相同的名称,但不同的ID。 并根据身份证进行检查。

$(“#myform”)。validate({rules:{#id_of_field:{required:true,checkValue:true}}});

朋友们!

为了validation文本框/checkbox/select具有相同的名称使用以下它对我来说工作正常。

这里'ctryId'是select框的名称。

 function validateCountry(){ inp = document.getElementsByTagName("select"); for ( var i = 0; i < inp.length; ++i ) { if (inp[i].name =="ctryId" && inp[i].value==''){ alert('plesae select a country!'); return false; } } return true; } 

这里'minVal'是文本框的名字

 function validateMinimumVal(){ inp = document.getElementsByTagName("TEXT"); for ( var i = 0; i < inp.length; ++i ) { if (inp[i].name =="minVal" && inp[i].value==''){ alert('plesae Add a MINIMUM VALUE!!'); return false; } } return true; } 

希望这可以帮助!! 贾根