J'essaie de créer 3 boutons et en utilisant javascript. Si le bouton 1 est cliqué, le texte "Cliquez sur un bouton" devient "Vous avez appuyé sur le bouton 1"
Même chose pour les boutons 2 et 3! Et si le bouton 3 est enfoncé, la couleur du texte devient VERT
Cependant, je n'arrive pas à le faire fonctionner! Toute aide serait appréciée
Voici mon code actuel:
<!DOCTYPE html>
<html>
<head>
<title>Button</title>
</head>
<body>
<script type="text/javascript">
function changeText() {
var b1 = document.getElementById('b1');
var b2 = document.getElementById('b2');
var b3 = document.getElementById('b3');
if(b1.onclick="changeText();") {
document.getElementById('pText').innerHTML = "You pressed button 1";
}
if(b2.onlick="changeText();") {
document.getElementById('pText').innerHTML = "You pressed Button 2";
}
}
</script>
<input type="button" value="Button 1" id="b1" onclick="changeText();"/>
<input type="button" value="Button 2" id="b2" onclick="changeText();"/>
<input type="button" value="Button 3" id="b3" onclick="changeText();"/>
<p id="pText">Click on a Button</p>
</body>
</html>
Vous pouvez essayer ceci:
<!DOCTYPE html>
<html>
<head>
<title>Button</title>
</head>
<body>
<script type="text/javascript">
function changeText(value) {
document.getElementById('pText').innerHTML = "You pressed " + value;
}
</script>
<input type="button" value="Button 1" id="b1" onclick="changeText(this.value);"/>
<input type="button" value="Button 2" id="b2" onclick="changeText(this.value);"/>
<input type="button" value="Button 3" id="b3" onclick="changeText(this.value);"/>
<p id="pText">Click on a Button</p>
</body>
</html>
Ici, ce que vous faites est que chaque fois que vous cliquez sur le bouton, la fonction onlick();
est appelée, elle contient la valeur de l’élément de bouton sur lequel vous venez de cliquer. Tout ce que la fonction changeText();
doit maintenant faire est d’éditer le innerHTML de l’élément à éditer. Directement.
J'espère que cela t'aides.
Code MISE À JOUR: (pour refléter vos paramètres mis à jour)
<!DOCTYPE html>
<html>
<head>
<title>Button</title>
</head>
<body>
<script type="text/javascript">
function changeText(value) {
document.getElementById('pText').innerHTML = "You pressed " + value;
if(value == "Button 3")
{
document.getElementById('pText').setAttribute('style', 'color: green');}
}
</script>
<input type="button" value="Button 1" id="b1" onclick="changeText(this.value);"/>
<input type="button" value="Button 2" id="b2" onclick="changeText(this.value);"/>
<input type="button" value="Button 3" id="b3" onclick="changeText(this.value);"/>
<p id="pText">Click on a Button</p>
</body>
</html>
Essaye ça:
<html>
<head>
<title>Button</title>
</head>
<body>
<script type="text/javascript">
function changeText(text) {
document.getElementById('pText').innerHTML=text;
}
</script>
<input type="button" value="Button 1" id="b1" onclick="changeText('You pressed Button 1');"/>
<input type="button" value="Button 2" id="b2" onclick="changeText('You pressed Button 2');"/>
<input type="button" value="Button 3" id="b3" onclick="changeText('You pressed Button 3');"/>
<p id="pText">Click on a Button</p>
</body>
</html>
Votre code est parfait. Mais le problème est que les deux boucles if s'exécutent séquentiellement si rapidement que vous ne pouvez pas voir quand le premier texte est converti en deuxième texte . Essayez d'insérer une alerte entre deux appels.
Tu es proche, mais pas de cigare.
Pour identifier correctement le bouton sur lequel vous cliquez, vous devez envoyer this
avec votre appel de fonction. Ainsi, vous obtenez une référence à l'objet sur lequel vous avez cliqué. Comparer la variable onclick
dans une instruction if ne fonctionnera pas, car il s'agit d'un pointeur de fonction et non d'une chaîne.
Essayez quelque chose comme:
<input type="button" value="Button 1" id="b1" onclick="changeText(this);"/>
Et votre changeText()
devrait maintenant ressembler à ceci. Vous pouvez utiliser cet exemple, mais vous devrez trouver le reste vous-même. Cela devrait cependant vous orienter dans la bonne direction.
function changeText(elementClicked) {
var button1 = document.getElementById('b1');
if (elementClicked == button1) {
// button 1 was clicked
}
}