Я использовал jQuery Validation Plugin , и он работал хорошо, поэтому я хотел придерживаться его.По сути, мне пришлось добавить пользовательский валидатор, и в итоге я использовал библиотеку date.js для интерпретации даты.Вот так:
# formats the date into a hidden field that can be validated when the dropdowns are changed.
$('#user_birthday_3i,#user_birthday_2i,#user_birthday_1i').change(function() {
$('#user_birthday').val($('#user_birthday_3i').val()+'/'+ $('#user_birthday_2i').val()+'/'+ $('#user_birthday_1i').val());
});
# uses date.js to interpret the date and do a little math
jQuery.validator.addMethod("ofAge", function(value, element) {
return Date.parse($("#user_birthday").val()) < (18).years().ago();
}, "You must be 18 years old to join.");
# validated the form using the jquery validation plugin
$("#new_user_signup").validate({
rules: {
"user[birthday]": {
required: true,
date: true,
ofAge: true
}
},
messages: {
"user[birthday]": {
required: "Please enter your birthday.",
date: "Please enter your birthday."
}
}
});
Не уверен, что это был лучший метод, в целом, но он работал для меня!