12
votes

JQuery Validate (plage de date)

IM Utilisation du plug-in Jquery Validate et vous vous demandiez s'il y avait un moyen de valider si la date entrée dans un champ était une date telle que AAAAYY-MM-DD et la date tombe entre le 29 novembre 2010 - 15 décembre 2010

im jolie nouveau à jQuery, donc s'il y a une réponse, veuillez éteindre le plus possible la réponse afin que je puisse passer à travers cela. Merci beaucoup pour toutes les suggestions


0 commentaires

6 Réponses :


8
votes

Je n'ai jamais utilisé le plugin de validation, mais un look à travers l'API suggère que quelque chose comme cela pourrait fonctionner:

$.validator.addMethod('daterange', function(value, element) {
    if (this.optional(element)) {
        return true;
    }

    var startDate = Date.parse('2010-11-29'),
        endDate = Date.parse('2010-12-15'),
        enteredDate = Date.parse(value);

    if (isNan(enteredDate)) {
        return false;
    }

    return ((startDate <= enteredDate) && (enteredDate <= endDate));
});


0 commentaires

7
votes

La réponse de LonesomeDay est assez proche, avec quelques modifications. Je terminerais le code comme suit:

    if(isNaN(enteredDate)) return false;

    return ((startDate <= enteredDate) && (enteredDate <= endDate));
}, "Please specify a date between 2010-11-29 and 2010-12-15");


1 commentaires

Emily Veuillez corriger la date dans le message de validation I.E. 2010-12-15



10
votes

Si vous souhaitez une fonction réutilisable, vous pouvez étendre les réponses d'Emily et de LonesomeDay pour permettre à un argument d'être fourni: xxx

Voir le source de la validation de jQuery plage méthode d'un exemple.


0 commentaires

2
votes

a fait quelques petites corrections dans le code de Connor.

Le code de travail résultant est: p> xxx pré>

puis utilisez-le comme ceci: P>

$("#some_date_input").rules("add",{daterange:['01/31/2001','01/31/2020']});


0 commentaires

2
votes

Tenez vos chevaux, les gars! :)

N'oubliez pas, cette date.parse ne peut pas fonctionner correctement avec différents locaux, il n'estime que le format de date correctement spécifique.

Si vous utilisez divers formats de date (spécifique à la culture) - il vaut mieux Coller à JQuery Date-Picker Date de manutention.

Donc, supposant que vous avez chargé que vous avez chargé JQUERY SADERY SADERYPICKER objet (par exemple, jquery.ui.datepicker-nb-notes, où le format de date est DD. Mm.yyyy et n'est pas analysé par date.parse) et l'initialisée, une approche appropriée est la suivante: xxx

J'ai mis des trucs parsédAte à l'intérieur du bloc, car il n'y a pas de chemin normal Pour déterminer si la date a été analysée correctement.


0 commentaires

0
votes

plage de date min code> / attributs max code> sur date code> type entrée code> xxx pré> p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<!--jquery validate-->
    	<script  src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.2.3/jquery.validate.min.js"></script>
    	<script  src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.2.3/additional-methods.min.js"></script>

    <input id="christmas-shopper-reservation" type="date" min="2010-11-29" max="2010-12-15">
    
    <label id="christmas-shopper-reservation-error" class="error" style="display:none;" for="christmas-shopper-reservation"></label>


3 commentaires

Est-ce que ça marche? Il semble que JQuery Validate interprète les attributs min et max comme indiquant un certain nombre de personnes qui devaient valider à moi, car je continue à obtenir l'erreur "Veuillez entrer une valeur supérieure ou égale à Nan." Frustrant.


@Brianpeterson, bien ce projet est parti depuis longtemps, ne me souviens même pas de ce que c'était. Mais je sais que je n'aurais jamais mis une réponse à moins que je ne l'avais pas obligé de travailler sur mon projet. Donc oui. Cela a fonctionné pour moi. J'utilisais probablement chrome pour tester si je devais deviner.


@Brianpeterson, j'ai ajouté un extrait. Tests bien en chrome.