Comment vérifier / valider dans jQuery si la date de fin [zone de texte] est supérieure à la date de début [zone de texte]?
jquery
date
jquery-validate
contribution
la source
la source
Réponses:
Simplement élargir la réponse aux fusions. cette méthode d'extension fonctionne en utilisant le plugin jQuery validate. Il validera les dates et les nombres
Pour l'utiliser:
ou
la source
code
if (valeur == 0) {return true; } else if (! / Invalid | NaN / ...code
Cela devrait le faire je pense
la source
Un peu tard à la fête mais voici ma part
Voici le détail:
la source
Référence jquery.validate.js et jquery-1.2.6.js. Ajoutez une classe startDate à votre zone de texte de date de début. Ajoutez une classe endDate à votre zone de texte de date de fin.
Ajoutez ce bloc de script à votre page: -
J'espère que cela t'aides :-)
la source
J'étais juste en train de bricoler la réponse de danteuno et j'ai trouvé que bien que bien intentionné, il est malheureusement cassé sur plusieurs navigateurs qui ne sont pas IE. C'est parce que IE sera assez strict sur ce qu'il accepte comme argument du
Date
constructeur, mais pas d'autres. Par exemple, Chrome 18 donneCela amène le code à prendre le chemin "comparer les dates" et tout va en descente à partir de là (par exemple
new Date("11")
est supérieur ànew Date("66")
et c'est évidemment l'opposé de l'effet désiré).Par conséquent, après réflexion, j'ai modifié le code pour donner la priorité au chemin "nombres" sur le chemin "dates" et valider que l'entrée est bien numérique avec l'excellente méthode fournie dans Valider les nombres décimaux en JavaScript - IsNumeric () .
Au final, le code devient:
la source
Les valeurs de date des champs de texte peuvent être récupérées par la méthode .val () de jquery comme
Je recommande fortement d'analyser les chaînes de date avant de les comparer. L'objet Date de Javascript a une méthode parse (), mais il ne prend en charge que les formats de date américains (AAAA / MM / JJ). Il renvoie les millisecondes depuis le début de l'époque Unix, vous pouvez donc simplement comparer vos valeurs avec> ou <.
Si vous voulez différents formats (par exemple ISO 8661), vous devez recourir à des expressions régulières ou à la bibliothèque gratuite date.js.
Si vous voulez être un super utilisateur, vous pouvez utiliser jquery ui datepickers au lieu de textfields. Il existe une variante de datepicker qui permet de saisir des plages de dates:
http://www.filamentgroup.com/lab/date_range_picker_using_jquery_ui_16_and_jquery_ui_css_framework/
la source
J'avais donc besoin que cette règle soit facultative et aucune des suggestions ci-dessus n'est facultative. Si j'appelle la méthode, elle s'affiche comme requis, même si je la définit comme nécessitant une valeur.
C'est mon appel:
Mon
addMethod
n'est pas aussi robuste que la réponse la mieux notée de Mike E., mais j'utilise le sélecteur de date JqueryUI pour forcer une sélection de date. Si quelqu'un peut me dire comment m'assurer que les dates sont des nombres et que la méthode soit facultative, ce serait génial, mais pour l'instant, cette méthode fonctionne pour moi:la source
Dans javascript / jquery, la plupart des développeurs utilisent la comparaison de date De & À qui est une chaîne, sans conversion au format de date. Le moyen le plus simple de comparer à partir de la date est supérieur à celui de la date.
Toujours analyser de et à date avant la comparaison pour obtenir des résultats précis
la source
J'aime ce que Franz a dit, car c'est ce que j'utilise: P
la source
Ou visitez ce lien
la source
la source
J'espère que cela aidera :)
la source
Tout d'abord, vous divisez les valeurs de deux boîtes de saisie en utilisant la fonction de division. puis concattez la même chose dans l'ordre inverse. après concat nation, analysez-le en entier. puis comparez deux valeurs dans l'instruction if. par exemple 1> 20-11-2018 2> 21-11-2018
après avoir divisé et concaté de nouvelles valeurs pour la comparaison 20181120 et 20181121, après cela, comparez les mêmes.
la source
cela devrait fonctionner
la source
S'il est garanti que le format est correct AAAA / MM / JJ et exactement le même entre les deux champs, vous pouvez utiliser:
En tant que comparaison de chaînes
la source