11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour, tout est dans le titre, je voudrais, grâce à un bouton <button></button>, définir une variable.
J'ai déjà essayé avec une fonction mais je n'ai pas réussi
Modérateur
Salut,

Au click sur un bouton il faut appeler une fonction. Tu peux mettre un id sur ton bouton et utiliser addEventListener ( https://www.w3schools.com/js/js_htmldom_eventlistener.asp ) pour lancer une fonction. Et dans ta fonction tu peux faire ce que tu veux.

Essaies ça et reviens avec un bout de code on te guidera si tu n'y arrive pas. Tu peux faire ca dans un https://jsfiddle.net comme ça tu pourra partager ton code facilement.
_laurent a écrit :
Salut,

Au click sur un bouton il faut appeler une fonction. Tu peux mettre un id sur ton bouton et utiliser addEventListener ( https://www.w3schools.com/js/js_htmldom_eventlistener.asp ) pour lancer une fonction. Et dans ta fonction tu peux faire ce que tu veux.

Essaies ça et reviens avec un bout de code on te guidera si tu n'y arrive pas. Tu peux faire ca dans un https://jsfiddle.net comme ça tu pourra partager ton code facilement.


En fait, j'ai 3 boutons ces trois boutons renvoient soit 1 soit 2 soit 3.
Pour initialiser la valeur, j'avais pensé à quelque chose comme celà,


<button onclick="myfunction(1)">1</button>
<button onclick="myfunction(2)">2</button>
<button onclick="myfunction(3)">3</button>

<script>
function myfunction(arg = 0) {
            var mavariable = arg
            return (mavariable);
        }

if (myfunction() == 0) {
             alert("Vous n'avez rien choisis.")
else{
Suite du programme
}
</script>


En fonction du bouton, l'argument dans la fonction est différent, ensuite, l'argument par défaut est 0 de sorte à ce que si l'utilisateur n'a rien sélectionné (donc si le programme détecte que la valeur renvoyée par la fonction = 0), le programme n'aille pas plus loin.
Mon problème, c'est que dans la ligne "if (myfunction() == 0) {", le programme me demande un argument, sauf qu'il serait complètement contre-productif de le faire car ça fausserait le résultat. Et avec Eventlistener, j'ai le même soucis ....
Quoi qu'il en soit, merci de ta réponse Smiley smile et merci d'avance à ceux qui voudront bien m'aider
Modérateur
Bon c'est déjà un début Smiley smile

On va commencer pas le eventListner c'est plus propre de passer par la que par un onclick dans le html :

<button id="button1">1</button>
<button id="button2">2</button>
<button id="button3">3</button>
<script>
document.getElementById("button1").addEventListener("click", function(){ myfunction(1) });
document.getElementById("button2").addEventListener("click", function(){ myfunction(2) });
document.getElementById("button3").addEventListener("click", function(){ myfunction(3) });

function myfunction(arg) {
	console.log(arg);
}
</script>


Ensuite,

C'est a l'intérieur de ta fonction que tu dois faire le if/else, sinon le code est posé au milieu de nul part. Toi tu veux qu'au moment du click, dans la fonction on vérifie la valeur envoyée :

function myfunction(arg) {
	if (arg == 0) {
		alert("Vous n'avez rien choisis.")
  else{
  	// Suite du programme
  }
}

Mais bon, vu que ce n'est pas une valeur entrée par l'utilisateur mais présélectionné par toi, tu n'a pas vraiment besoin de faire ce test... avec ce que tu as là, impossible d'avoir une autre valeur que 1 2 ou 3.
Meilleure solution
_laurent a écrit :
Bon c'est déjà un début Smiley smile

On va commencer pas le eventListner c'est plus propre de passer par la que par un onclick dans le html :

&lt;button id="button1"&gt;1&lt;/button&gt;
&lt;button id="button2"&gt;2&lt;/button&gt;
&lt;button id="button3"&gt;3&lt;/button&gt;
&lt;script&gt;
document.getElementById("button1").addEventListener("click", function(){ myfunction(1) });
document.getElementById("button2").addEventListener("click", function(){ myfunction(2) });
document.getElementById("button3").addEventListener("click", function(){ myfunction(3) });

function myfunction(arg) {
	console.log(arg);
}
&lt;/script&gt;


Ensuite,

C'est a l'intérieur de ta fonction que tu dois faire le if/else, sinon le code est posé au milieu de nul part. Toi tu veux qu'au moment du click, dans la fonction on vérifie la valeur envoyée :

function myfunction(arg) {
	if (arg == 0) {
		alert("Vous n'avez rien choisis.")
  else{
  	// Suite du programme
  }
}

Mais bon, vu que ce n'est pas une valeur entrée par l'utilisateur mais présélectionné par toi, tu n'a pas vraiment besoin de faire ce test... avec ce que tu as là, impossible d'avoir une autre valeur que 1 2 ou 3.


Tu as résolu mon problème, un grand merci à toi ^^ sinon, je veux juste vérifier le fait que l'utilisateur ai bien sélectionné quelque chose ce qui explique la présence du if.