Bonjour à tous,

Dans le code ci-dessous, l'incrémentation d'une valeur de champ "duree" (IntegerType) ne marche pas : Une concaténation se produit en place d'une addition... par contre la décrémentation elle , fonctionne parfaitement ! Pourquoi ?

D'autre part, j'essaie d'ajouter ou soustraire des minutes au champ "heureFin" qui est un TimeType mais je reçois un message "NaN" , je veux juste qu'après l'actualisation du champ "duree" le champ "heureFin" soit incrémenté ou décrémenté en partant de la valeur du champ "heureDebut"...

Merci d'avance pour votre aide

window.onload = () => {
  const btnsDuree = document.querySelectorAll(".btn-duree");
  const duree = document.querySelector("#rendez_vous_duree");
  const heureFin = document.querySelector("#rendez_vous_heure_fin");
  const heureDebut = document.querySelector("#rendez_vous_heure_debut");

  btnsDuree.forEach((btn) => {
    btn.addEventListener("click", (e) => {
      e.preventDefault();

      switch (e.target.id) {
        case "btnMoins60":
          if (duree.value >= 75) {
            duree.value -= 60;
          }
          break;
        case "btnMoins15":
          if (duree.value >= 30) {
            duree.value -= 15;
            console.log(new Date(heureDebut,"HH:mm").getMinutes());
          }
          break;
        case "btnPlus15":
          duree.value += 15;
          break;
        case "btnPlus60":
          duree.value += 60;
          break;
        default:
          return;
      }
    });
  });
};

2 réponses


Grafikart
Réponse acceptée

Attention value est une chaine de caractère (même si ton champs est un champs de type number) si tu veux la valeur sous forme de nombre utilise plutôt valueAsNumber

Merci Grafikart d'avoir répondu !

Je ne connaissais pas encore "valueAsNumber" en effet tout marche correctement avec :)