Problème pour imbriquer 2 codes de javascript
Résolu/Ferméflexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 14 août 2022 à 21:46
- Problème pour imbriquer 2 codes de javascript
- Codes ascii - Guide
- Telecharger javascript - Télécharger - Langages
- Word numéro de page 1/2 - Guide
- Codes secrets pour débloquer tous téléphones mobiles - Guide
- 2 ecran pc - Guide
3 réponses
14 août 2022 à 13:02
bonjour,
Je pense que le plus simple, c'est de commencer par ajouter onclick=boutoncouleurclique("unecouleur") dans la définition du bouton, puis de définir la fonction boutoncouleurclique() dans le code javascript.
Modifié le 14 août 2022 à 17:33
bonjour yg_be
Merci pour ton aide
je me suis un peu emmêlé les pinceaux lorsque j'ai présenté mon dernier essai
Mon idée était d'insérer
la recherche du bouton radio sélectionné dans l'autre code
de cette manière en déplaçant juste une accolade
//debut pour afficher le name via le input var form = document.getElementById("forms"); form.onclick = function(e) { e.preventDefault(); var name = document.getElementById("name").value; //console.log(name); document.getElementById('print').innerHTML = name.toUpperCase(); //debut pour savoir quel bouton a ete coche document.querySelectorAll("input").forEach(item => { item.addEventListener("change", () => { console.log(item.id) if (item.id == "black") { console.log(item.id) document.getElementById('print').innerHTML = name.toUpperCase(); } else if (item.id == "red") { console.log(item.id) document.getElementById('print').innerHTML = name.toUpperCase(); } else { console.log(item.id) document.getElementById('print').innerHTML = name.toUpperCase(); } }) }) }
mais bien évidement ni les console item.id et ni les
document.getElementById('print').innerHTML=name.toUpperCase();
n'affichent quoi que ce soit
donc si je comprends bien je devrais ajouter une fonction a mon code ainsi qu'un onclick
lorsque je choisis un bouton radio j'ai ce message
ReferenceError: boutoncouleurclique is not defined
//debut pour afficher le name via le input var form = document.getElementById("forms"); form.onclick = function(e) { e.preventDefault(); var name = document.getElementById("name").value; //console.log(name); document.getElementById('print').innerHTML = name.toUpperCase(); //debut pour savoir quel bouton a ete coche function boutoncouleurclique() { document.querySelectorAll("input").forEach(item => { item.addEventListener("change", () => { console.log(item.id) if (item.id == "black") { console.log(item.id) document.getElementById('print').innerHTML = name.toUpperCase(); } else if (item.id == "red") { console.log(item.id) document.getElementById('print').innerHTML = name.toUpperCase(); } else { console.log(item.id) document.getElementById('print').innerHTML = name.toUpperCase(); } }) }) } }
voici un mes input modifié
<label><input type="radio" name="promotion" id="black" data-target="10" value="10" onclick='boutoncouleurclique("black");'/>j'ai un code promo</label>
14 août 2022 à 18:07
La nouvelle fonction doit être déclarée hors de toute autre fonction.
Donc, par exemple, tout à la fin du fichier.
Le point de départ de la réflexion, c'est "quand" l'action doit être exécutée. Décris d'abord "quand" chaque action doit être exécutée, avant de penser à comment modifier le programme.
Avant de toucher au programme, écris ce qu'il doit faire, et quand. Tu es en train de faire exactement les mêmes erreurs que dans la discussion précédente: tu essaies de déclarer des fonctions à l'intérieur d'autres fonctions, et tu confonds le "quand" avec la position dans le programme.
Avant de toucher au programme, écris ce que tu penses réaliser, comment. Inutile de modifier le programme avant que cela soit clair.
Exemple:
- quand l'utilisateur clique ceci, telle fonction fera cela, en lisant telle partie de la page html, et écrira dans telle partie de la page
- évite de montrer des instructions, cela te sert juste comme paravent pour cacher ton incompréhension de ce à quoi elles servent
14 août 2022 à 21:46
Merci pour l'aide et la reponse
en fait tu as tout a fais raison
Pendant que j'étais occupé a répondre
Sans trop me casser la tête avec les codes
J'ai compris que je pouvais faire autrement
je demande juste dans le code du bouton radio de dire que si la couleur est noire
cela signifie que pas de ristourne
Donc de donner les instructions sans remise au client
et ensuite je prends le code avec le input name et je construis mes deux conditions restante
encore une fois je suis allé chercher des complications la ou il ne devait pas y en avoir
Manque de concentration
encore merci pour cette pédagogie