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