2010-09-28 4 views
1

J'ai un sélecteur de date mais j'essaie la saisie manuelle de l'utilisateur i-e Septembre a 30 jours comment puis-je bloquer la 31e date à entrer manuellement de l'utilisateur ???jquery date validation

Répondre

3

Vous ne devriez pas gêner lorsque l'utilisateur tape quelque chose. Au lieu de cela, vous devez: laisser l'utilisateur entrer une valeur, la valider (échouer), rendre le champ rouge, ajouter un message d'erreur au-dessus du formulaire ("date invalide"), mettre l'accent sur le champ . Ajoutez un gestionnaire de clic au bouton d'envoi et assurez-vous que tous les champs sont valides. Si ce n'est pas le cas, abandonnez le soumettre (return false;). Sinon, return true; pour soumettre le formulaire.

+0

Je suis curieux de savoir pourquoi vous pensez que cela ne peut pas être fait. –

+0

Amélioration de la formulation pour rendre mon point plus clair. –

+0

Il peut être judicieux que certains navigateurs puissent causer des problèmes lors du rendu d'un datpicker particulier. Dans ce cas, vous devez revenir manuellement à la date d'entrée de l'utilisateur. –

0

jQuery UI a un DatePicker avec tout cela inclus. Pourquoi ne pas essayer, si possible?

+0

Est-ce quelque chose comme ceci possible "numéro valide" pour la date ??? – Shaun

0

Vous devez capturer keyup événement et empêcher l'utilisateur d'entrer une date non valide qui vous obligera à traiter ce que l'utilisateur a entré et est assez difficile ou vous pouvez simplement empêcher toute saisie au clavier en utilisant event.preventDefault() ; L'utilisateur sera donc en mesure de sélectionner la date de datepicker SEULEMENT.

$("#mydatefield").keyup(function(e){ 
    e.preventDefault(); 
}); 
0

piège l'événement keydown (keyup ne fonctionne pas pour moi):

$("#MyDate").keydown(function (e) {   
    e.preventDefault(); 
});