Je veux attacher une fonction à un élément d'entrée dans le fichier javascript mais cela ne fonctionne pas comme je le souhaite, veuillez suggérer la syntaxe correcte ou toute autre solution et je ne veux pas utiliser la méthode html en ligne comme <input type="text" id="name" onfocus="hello()">
. Voici le violon,
document.getElementById("name").onfocus = hello();
function hello () {
alert("hello");
}
<input type="text" id="name">
Je veux que la fonction soit exécutée lorsque l'élément d'entrée obtient le focus, mais ici, la fonction s'exécute immédiatement après le chargement de la page. S'il vous plaît, je veux du javascript pur, pas de jquery.
4 réponses
function hello () {
alert("hello");
}
document.getElementById("name").onfocus = hello;
D'abord, la fonction bonjour doit être définie avant de la définir comme fonction à utiliser pour l'événement.
Deuxièmement, vous devez supprimer les crochets du nom de la fonction lorsque vous le définissez comme fonction onfocus. Vous donnez une référence à la fonction, à utiliser plus tard, sans l'exécuter là-bas.
Par conséquent, cela devrait fonctionner:
function hello () {
alert("hello");
}
document.getElementById("name").onfocus = hello;
Attachez l'écouteur d'événements à la place
document.getElementById("name").addEventListener("focus", function(){
alert('Hello')
});
<input type="text" id="name">
document.getElementById("name").addEventListener("focus", function(){alert('test')}, false);
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.