Вот соответствующий код проверки jquery. Как вы можете видеть, похоже, что применяется проверка длины к числу выбранных опций, а не к длине параметра. Кажется, что они применяются только к многобайтовым спискам.
maxlength: function(value, element, param) {
return this.optional(element) || this.getLength($.trim(value), element) <= param;
}
getLength: function(value, element) {
switch( element.nodeName.toLowerCase() ) {
case 'select':
return $("option:selected", element).length;
case 'input':
if( this.checkable( element) )
return this.findByName(element.name).filter(':checked').length;
}
return value.length;
}
Что вы можете сделать, это переопределить функцию getLength
, чтобы просто вернуть value.length
напрямую.
$.validator.prototype.getLength = function (value, element) {
return value.length;
}