essayer d'écrire un programme JS / HTML qui prend le nom de l'utilisateur en tant qu'entrée et sortie "Bonjour, [nom]!" Lorsque vous cliquez sur le bouton.
html: p> js: p> quand j'essaie de l'exécuter, il génère "Bonjour, null ! " à chaque fois. p> p>
3 Réponses :
déplacez-le à la fonction elle-même et ajoutez "valeur":
Votre fonction n'a pas accès à la variable forte> txtname forte>. Vous devriez le déplacer dans la fonction. Vous pouvez également utiliser GetElementyID au lieu d'un sélecteur de requête. Depuis lors, il y avait là, pourquoi ne pas supprimer complètement la variable:
p> <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Greeter</title>
</head>
<body>
<script src="app.js"></script>
<input id = "txtName" placeholder="Your Name"/>
<button onclick="sayHello()"> Say Hello </button>
</body>
</html>
Votre code avait 2 problèmes avec elle. One est comme la variable code> est initié en utilisant Cette ligne de code est courir dès que la page se charge. Il est donc attribué à l'objet d'entrée car la page est chargée ( et non la valeur em>). Pour imprimer le nom, bien que nous ayons besoin de la valeur de cet objet ( qui est le deuxième point em>) et non l'objet entier lui-même. Nous accédons à sa valeur en utilisant définir cette ligne à l'intérieur de la fonction appelée Ça obtiendra étendue code> et l'autre correspondant code> code>.
Laissez code>, son
étendue code> est limité et non
global code>. Utilisez
var code> pour le rendre global, il peut donc obtenir l'accès à l'intérieur
fonctionner code> aussi. P>
.value code>. P>
null code> Valeur, car il fonctionnera dès que la page Charge de page et
NULL code> sera attribuée car aucune entrée
code> est là dans la zone d'entrée. p>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Greeter</title>
</head>
<body>
<script src="app.js"></script>
<input id = "txtName" placeholder="Your Name"/>
<button onclick="sayHello()"> Say Hello </button>
</body>
</html>
Vous exécutez votre script avant que les éléments cibles ont été créés. Essayez de le déplacer jusqu'à la fin du document, avant l'étiquette du corps de fermeture. De plus, vous devez obtenir la valeur
code> de l'entrée, donc
txtname.value code> pas
txtname code>
fonction Sayhello () {document.write ("Bonjour," + txtname.value + "!"); }