проверка нескольких текстовых полей с одинаковым именем с помощью jquery validator проверяет только первый ввод

Я пытаюсь проверить два входа с тем же именем с помощью jquery validator ..

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


но когда я запускаю этот код, он только проверяет первые входы, а второй вход просто игнорируется

Я также пробовал использовать
но все еще не работает.

что я должен изменить …?

заранее спасибо

«Я пытаюсь проверить два входа с таким же именем с помощью jquery validator …»

   

«но когда я запускаю этот код, он только проверяет первые входы, а второй вход просто игнорируется»

У вас не может быть двух полей input type="text" с тем же name или этот плагин не будет работать должным образом. Атрибут name должен быть уникальным. (Единственное исключение из уникального имени состоит в том, что «группировки» флажков или радиовходов будут иметь одно и то же name поскольку соответствующее представление является единственной точкой данных. Однако name должно быть уникальным для каждой группировки флажка и радио элементы) .

«Что я должен изменить …? »

Сделать каждый атрибут name уникальным.

   

Затем используйте селектор «начинается с», ^=

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

Рабочий ДЕМО: http://jsfiddle.net/PgLh3/

ПРИМЕЧАНИЯ : вы также можете настраивать элементы по id при использовании метода rules('add') , однако для этого случая ничего не решено, потому что плагин по-прежнему требует уникального name для каждого элемента input .

Добавьте такую ​​конфигурацию, как следующие правила или сообщения

 multipleInputSharedName: { inp_text: true } 

Изменить код в jquery.validate.js Имя метода: элементы

замените следующие

 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; } 

Да, проверка JQuery проверяет только первое вхождение. Вы используете разные имена для текстовых полей. ИЛИ Вы можете использовать те же имена, но разные идентификаторы. и применить проверку в соответствии с идентификатором.

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

Друзья!

Чтобы проверить текстовое поле / флажок / выбрать с тем же именем, используйте следующее, это работает отлично для меня.

Здесь ‘ctryId’ – это имя поля выбора.

 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; } 

Надеюсь это поможет!! Джагана

  • Проверять поля с помощью проверки JQuery без отправки?
  • Как проверить массив входов с помощью validate plugin jquery
  • Проверка правильности выбора jQuery
  • jQuery отключает проверку правил в одном поле
  • Проверка jQuery: изменение сообщения об ошибке по умолчанию
  • Плагин jquery.validate - как обрезать значения перед проверкой формы
  • ASP.net MVC 3 jQuery Validation; Отключить ненавязчивый OnKeyUp?
  • Проверка jQuery на разных языках
  • jQuery validate plugin: принимать буквы только?
  • проверка на стороне клиента в атрибуте пользовательской проверки - asp.net mvc 4
  • ASP.NET MVC Отключить проверку на стороне клиента на уровне поля
  • Давайте будем гением компьютера.