Menu

Récupérer un input date [Résolu]

Messages postés
400
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
19 mai 2019
-
Bonjour a toute et a tous ! j'ai un formulaire dans lequel l'utilisateur doit choisir une date de début et une date de fin. Pour cela il a un
<input type="date" id="date_debut">
pour le début et un autre pour la fin j'en suis donc arriver ici
var date_debut = new Date($('#date_debut').val());
var date_fin = new Date($('#date_fin').val());

if (date_debut > date_fin)
{
alert("La date de fin doit etre apres la date de début !");
}
elseif (date_debut == date_fin)
{
alert("La date de début et fin sont identique");
}

Pour moi jusque là cela me parrais correct cependant je n'arrive a pas envoyer les valeurs choisis dans ma fonction pour les tester de plus je ne trouve pas comment je pourrais faire dans le cas ou la date de debut et plus tard que la date de fin pour remettre les deux champs "vide" Merci a vous pour votre aide :)
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
390
Date d'inscription
dimanche 7 septembre 2014
Statut
Membre
Dernière intervention
20 février 2019
32
1
Merci
Car Date est un objet et un non une variable

Lisez cette doc qui vous éclairera sur son fonctionnement

https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 39199 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nulenmathe
Messages postés
400
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
19 mai 2019
5
0
Merci
me revoilà.. Apparemment je suis partie dans les méandre de la POO alors que je ne suis pas encore prêt.. pour résoudre ce problème j'ai donc réaliser c'est lignes :
 function controle_date()
{
date_debut = document.getElementById("date_debut").value;
date_fin = document.getElementById("date_fin").value;
  if (date_debut > date_fin)
  {
    alert("Erreur");
date_fin.innerHTML = "";
  }
  else
  {
    alert("OK");
  }
}

Les deux première me permettent de récupérer les des deux inputs et ensuite j'effectue les différentes conditions et si la date de début est plus grande que la date de fin alors il affiche une erreur et vide le champs.

Le problème que j'ai maintenant c'est a quel moment je peux appeler la fonction et comment par exemple si je fait avec cette ligne

 <input type="date"  name="date_debut" id="date_debut" onclick="controle_date()" required>

la fonction vas être appeler pas au moment ou j'aurais choisis ma date mais au moment ou j'aurais cliquer sur le input..


EDIT : Correction des balises de code pour avoir la coloration syntaxique
jordane45
Messages postés
25568
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mai 2019
1977 -
Bonjour,


Le problème que j'ai maintenant c'est a quel moment je peux appeler la fonction
[...]
la fonction vas être appeler pas au moment ou j'aurais choisis ma date mais au moment ou j'aurais cliquer sur le input..


C'est quoi la question ??
Comment faire appel à ta question lorsque tu en auras besoin ???
Et bien... en appelant la fonction.... lorsque u en auras besoin justement....
C'est toi qui sait "quand" tu en auras besoin... nous on ne sait rien de ton code, de sa finalité ou de comment tu comptes l'utiliser....
juliendu51100
Messages postés
400
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
19 mai 2019
5 -
Bonjour désoler de ne pas avoir étais suffisamment claire..
Mon problème c'est que actuellement si je clique sur mon input pour choisir une date il appel directement la fonction(sans aucune date du coup).. la fonction n'est pas appeler au bon moment.
jordane45
Messages postés
25568
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mai 2019
1977 > juliendu51100
Messages postés
400
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
19 mai 2019
-
Tournes toi vers les différents event
comme le onblur par exemple https://www.w3schools.com/jsref/event_onblur.asp
jordane45
Messages postés
25568
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mai 2019
1977 -
Tu as aussi le onchange
juliendu51100
Messages postés
400
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
19 mai 2019
5 -
merci je vais voir de suite :)
Commenter la réponse de juliendu51100
Messages postés
400
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
19 mai 2019
5
0
Merci
voici le code final fonctionnel merci pour votre aide :)
<label class="bmd-label-floating">Date et heure de debut de publication : </label>
<input type="date"  name="date_debut" id="date_debut" min="<?php echo date("Y-m-d"); ?>" max="<?php  echo date("Y-m-d",strtotime("+1 years")); ?>" onfocus="controle_date()" required>
                            <input type="time" name="heure_debut" id="heure_debut" onfocus="controle_date()" required>
                            <label class="bmd-label-floating">Date et heure de fin de publication : </label>
                            <input type="date" name="date_fin" id="date_fin" min="<?php echo date("Y-m-d"); ?>" max="<?php  echo date("Y-m-d",strtotime("+1 years")); ?>" onfocus="controle_date()" required>
                            <input type="time" name="heure_fin" id="heure_fin" onfocus="controle_date()" required>
<script>function controle_date()
{
  date_debut = document.getElementById("date_debut").value;
  date_fin = document.getElementById("date_fin").value;
  heure_debut = document.getElementById("heure_debut").value;

  if (date_debut !== "")
  {
    var date = document.getElementById("date_fin");
    date.setAttribute('min', date_debut);
  }
  if (date_debut == date_fin && date_debut !== "" && date_fin !== "")
  {
    var heure = document.getElementById("heure_fin");
    heure.setAttribute('min', heure_debut);
  }

}</script>
Commenter la réponse de juliendu51100