J'ai un sélecteur de dates, mais je n'ai pas pu trouver un moyen de valider si l'entrée de l'utilisateur est une date ou non ET si elle suit le format requis ( format: aaaa-mm-jj )
Voici mon sélecteur de date:
$("input[name='date']").datepicker({ dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true, numberOfMonths: 3, showButtonPanel: true});
J'ai regardé cette solution, " Comment valider datepicker pour interdire/rejeter certaines dates? ". Cela semble assez simple, mais il vérifie seulement s'il s'agit d'un week-end. Il ne vérifie pas si l'utilisateur a entré une date, un nombre aléatoire ou une faute de frappe (1231 .... 30-30-2011 ... 30/30/2011 ... 212-565-565 ... etc.) .
Veuillez jouer avec mon violon: http://jsfiddle.net/MDa4A/
Informations supplémentaires (11-10-2011):
(Essayez ces jsFiddles et tapez 0-0-0 ou 0/0/0)
J'ai utilisé vos réponses pour trouver une solution. Cela fonctionne lorsque j'utilise le format "aa-mm-jj" : http://jsfiddle.net/LyEvQ/
MAIS c'est totalement inutile quand j'utilise un format différent (Ej .: "mm/dd/yy") : http: // jsfiddle.net/LyEvQ/1/
J'ai besoin des deux pour travailler. Peux-tu aider s'il te plait
if (Date.parse("some string")) {
//Valid date
} else {
//Not a valid date
}
Quelque chose comme ça devrait fonctionner:
jQuery.validator.addMethod("customDateValidator",
function(value, element) {
try { jQuery.datepicker.parseDate("mm/dd/yyyy", value); return true; }
catch(e) {
return false;
}
},
"Please enter a valid date"
);
$("input[name='date']").rules("add", { customDateValidator:true });
Utilisez la méthode Date.parse()
pour vérifier si une date est valide:
var timestamp = Date.parse($("input[name='date']").val())
if (isNaN(timestamp) == false) {
var d = new Date(timestamp);
}