2015-07-14 2 views
0

Я написал конкретный валидатор для Parsley.js, чтобы определить, является ли выбранная дата соответствует определенным критериям:Как включить сообщения об ошибках в Parsley.js

  1. Дата между в прошлом и б лет.
  2. Если только мин-дата дается, должно быть еще одно сообщение

Я решил эту проблему, написав одну функцию и назначить его на два валидаторов, чтобы иметь возможность переводить сообщения по-разному.

Есть ли лучший способ динамически переключать сообщение на основе параметров, заданных для валидатора?

// translationkeys: 
// timerange: "Muss zwischen %s und %s Jahren in der Vergangenheit liegen" 
// mintimerage: "Muss mindestens %s Jahr(e) in der Vergangenheit liegen" 

var timeValidator = function (value, req) { 
if(req.min){ 
    var mindate = moment().subtract(req.min, 'y'); 
} 
if(req.max){ 
    var maxdate = moment().subtract(req.max, 'y'); 
} 

var date = moment(value, 'DD.MM.YYYY'); 

if(req.max){ 
    return (date.isAfter(maxdate)&& date.isBefore(mindate)); 
    } else { 
    return (date.isBefore(mindate)); 
} 
} 

window.ParsleyValidator.addValidator('timerange', timeValidator, 
    32 
) 
window.ParsleyValidator.addValidator('mintimerange', timeValidator, 
    32 
) 

ответ

Смежные вопросы