JQuery валидировать добавить правила для ввода массива

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

HTML:

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

Правило JS:

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

});

Спасибо

2 ответа

Решение

Почему бы не завернуть selectList[] внутри цитаты:

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

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

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

Проблема в том, что готовый 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();
},
Другие вопросы по тегам