Раз не получается просто, сделал примерчик. Может быть еще какие-то способы есть?
//Пользовательский валидатор. Мы не можем его контролировать и название поля с сообщением мы не знаем
function isMax(value, options) {
if (value > options.max) {
return options.maxMessage;
// return options.maxMessageXXX //поле с сообщением может не существовать
// return 'Плохое число' //вернул свое сообщение
}
}
//Наша обертка. Здесь мы можем подменить options
function validateMax(value, options) {
var result = isMax(value, options);
if (!result) {
return 'Валидно'
}
return result;
}
alert(validateMax(3, {max: 2, maxMessage: 'Слишком большое'}));
alert(validateMax(3, {max: 2})); //Неверное поведение
alert(validateMax(1, {max: 2, maxMessage: 'Слишком большое'}));