Можно также сделать так, чтобы существующий метод rangelength
поддерживал точный диапазон, предоставляя динамическое сообщение, подобное этому:
$.extend($.validator.messages, {
rangelength: function(args, inputElement) {
var isExactRange, min, max;
// Cast arguments as numbers
min = Number(args[0]);
max = Number(args[1]);
isExactRange = min === max;
if (isExactRange) {
return 'Please enter exactly ' + min + ' characters.';
}
return 'Please enter between ' + min + ' and ' + max + ' characters.';
}
);
Как видно, вы можете генерировать сообщения на лету на основе аргументов, передаваемых методам проверки. Обратным вызовам сообщений передаются аргументы метода проверки в качестве первого аргумента, а входной элемент проверяется в качестве второго аргумента.
Это позволяет вернуть одно сообщение, когда указан точный диапазон, и другое, если верхняя и нижняя границы не совпадают.
Чтобы вернуться к стандартному сообщению rangelength
, замените
'Please enter between ' + min + ' and ' + max + ' characters.'
с
$.validator.messages.rangelength
Было бы неплохо, если бы официальная документация была обновлена, поскольку в ней сложно ориентироваться, и она не описывает все функции плагина.