JQuery валидировать добавить правила для ввода массива - PullRequest
2 голосов
/ 03 апреля 2012

Я хотел бы сохранить значение флажка в массиве, однако я не могу использовать правила проверки, так как имя selectList[] вместо selectList.Я попробовал id, но похоже, что правило связывает только имя.

html:

<input id='sendList' type='checkbox' name='selectList[]' value='$set[ListID]'>

js rule:

  $("#selectList").validate( {
      rules: {
          selectList[]: {
              required: true,
              minlength: 1
          }
       }
   })

});

Спасибо

Ответы [ 2 ]

2 голосов
/ 15 июня 2016

Проблема в том, что готовый jquery.validate.js проверяет только первый элемент категории [].Итак, нам нужно немного его изменить.

В jquery.validate.js найдите функцию с именем checkForm, мы должны изменить ее следующим образом:

checkForm: function() {
this.prepareForm();
for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
if (this.findByName( elements[i].name ).length != undefined && this.findByName( elements[i].name ).length > 1) {
for (var cnt = 0; cnt < this.findByName( elements[i].name ).length; cnt++) {
this.check( this.findByName( elements[i].name )[cnt] );
}
} else {
this.check( elements[i] );
}
}
return this.valid();
},
0 голосов
/ 03 апреля 2012

Почему бы не заключить в кавычки selectList[]:

$("#selectList").validate({
    rules: {
        'selectList[]': {
            required: true,
            minlength: 1
        }
    }
});

В при инициализации имен свойств объекта Javascript , они могут быть идентификатором (как вы пытались), числом илистрока.

Рабочий код: http://jsfiddle.net/rMgLG/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...