IF

Fermé
LIOUDIOUF Messages postés 10 Date d'inscription mardi 22 octobre 2019 Statut Membre Dernière intervention 28 novembre 2019 - Modifié le 28 nov. 2019 à 10:05
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 28 nov. 2019 à 10:21
Bonjour,

J'aimerais créé une function alert () me permettant d'afficher automatiquement le message ("extreme urgence") à chaque fois que je trouve le résultat 5 issu d'une différence entre 2 dates.
J'ai déjà appliqué ma fonction me permettant de calculer la différence entre les 2 dates. Le souci se trouve au niveau du code qu'il faudra mettre dans la function alert () pour l'affichage.

Voici ce que j'ai mis dans ma fonction mais quand je compile avec mon formulaire cela ne marche pas.
comment dois je faire appel à la fonction dans mon formulaire sans utiliser de button?

<script>
  function myAlert(){
    var nummonths;
     if (nummonths == 5){
  alert("extreme urgence"); 
    }
       }
  </script>


Merci


Configuration: Windows / Edge 17.17134

1 réponse

Salut,
en premier lieu ne pas utiliser 'alert' pour un résultat. Cette fonction est utile pour le débogage uniquement sinon elle n'est pas recommandée car bloque la page. Une alerte étant l'indication d'une erreur et non le fonctionnement normal du programme! Il serais plus logique d'inscrire directement le résultat dans un élément de la page, avec innerHTML par exemple.

Pour votre code vous comparez une valeur avec IF, mais cette valeur ci est toujours nulle:

var nummonths;//-- crée une variable vide
if (nummonths == 5){//-- ce 'if' ne sera jamais vrai: "rien" ne sera jamais strictement égal à 5</gras>
//--

//--Par contre on peut imaginer facilement ceci:

if( calculEcartMois(date1,date2) === 5 ){
//-- si le résultat de la fonction calculEcartMois est strictement égal à 5
/* je ne connais pas ce que doit faire votre programme mais que doit il se passer si il y a plus de 5 mois, 6 ou 12 par exemple... 
Une comparaison supérieur à 4 ne serait-elle pas plus judicieuse?
*/

}

 


"Le souci se trouve au niveau du code qu'il faudra mettre dans la function alert () pour l'affichage. "
" quand je compile avec mon formulaire cela ne marche pas."
Commencez par lire les erreurs indiquées dans la console du navigateur( en utilisant le mode développement.).
  • pas de compilation on parle de langage de script "interprétés" et non compilés, imaginez la lenteur du web s'il fallait compiler les pages avant de les afficher...


Non pas vraiment la fonction myAlert() est fausse comme détaillé ci-dessus. JavaScript permet d'avoir accès au HTML et donc la valeur inscrite dans un input(ou le résultat de votre calcul de date ici).
Pour passer une valeur d'une fonction à une autre vous avez les paramètres:

function numeroMoisProchain(m){
m=m>11?1:m++;//-- équivalent 'if + else' notation ternaire 
return m;
}
function getMois(mois){
let annee=['janvier', 'février' ,'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'];
return annee[mois];
}
let moisProchain='aucun';
moisProchain=getMois( numeroMoisProchain(11) );
console.log('le mois prochain sera celui de '+moisProchain )
);



"comment dois je faire appel à la fonction dans mon formulaire sans utiliser de boutton?"

Si vous parlez de onclick IL NE FAUT PAS UTILISER de préférence il y a .addEventListener qui est beaucoup mieux et recommandé. Donc à priori ne jamais placer une fonction sur un bouton comme vous le faites. Sinon une fonction est exécutée quand on veut, si vous avez comme événement un clic su rle formulaire(la partie HTML qu'il faut bien séparer de la programmation! Dans votre formulaire aucune fonction ne s'applique, le formulaire se contente de fournir son contenu au code lorsque la fonction est appelée, c'est tout à fait différent de ce que vous dites.

Cela serait plus simple:
-que vous indiquiez le code complet parce là c'est impossible de répondre à vos questions puisque vous ne mettez pas tout le code(HTML inclus).

-l'indiquer de manière claire. Par exemple vous postez une question sur le JavaScript dans la section HTML, vous n'indiquez pas clairement votre code en utilisant la coloration syntaxique...

Bref j'ai l'impression surtout que vous ne faites pas grand chose et voulez une réponse toute faite:
_ici vous trouverez entraide et écoute pour les gens qui font par eux-même, éventuellement des conseils et solutions à vos problèmes tant que vous avez essayé de les résoudre par vous-même.
_au vu de vos questions il me semble que vous nécessitez u peu plus d'heure sur un cours JavaScript.

J'ai toutefois indiqué les réponses qu'il vous faut en espérant avoir compris votre question malgré l’absence du code concerné...
0
LIOUDIOUF Messages postés 10 Date d'inscription mardi 22 octobre 2019 Statut Membre Dernière intervention 28 novembre 2019
28 nov. 2019 à 09:59
Merci,

Comment est ce que je dois vous envoyer le code en fichier attaché pour plus de details?
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > LIOUDIOUF Messages postés 10 Date d'inscription mardi 22 octobre 2019 Statut Membre Dernière intervention 28 novembre 2019
28 nov. 2019 à 10:21
0