Uncaught TypeError: lang n'est pas une fonction

Dans mon HTML, je définis la fonction lang dans la balise de script et j'ajoute "Test Fire!" Qui doit appeler lang en cliquant sur:

 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Testing Functions</title> <script type="text/javascript"> function lang() { alert("Hello, World! It's JavaScript this time"); } </script> </head> <body> <form action=""> <input type="button" value="Test Fire!" onclick="lang();"> </form> </body> </html> 

Cependant, si je clique sur le bouton, je reçois cette erreur:

Uncaught TypeError: lang n'est pas une fonction

Mais si je change le nom de la fonction de lang à autre chose, ce code fonctionne bien.

Considérez ce code:

 <input type="button" value="Test Fire!" onclick="debugger;" /> 

Il n'y a aucune raison de compliquer ( je ne sais vraiment pas pourquoi cela ne fonctionne pas ), mais vous pouvez utiliser:

  • Ajoutez l'alerte directement dans l'entrée.

Résultat: https://jsfiddle.net/cmedina/h4m1qcoq/6/

ou

Ajouter l'auditeur à l'entrée

 function lang() { alert("Hello, World! It's JavaScript this time"); } document.getElementById('test').onclick = lang 

Résultat: https://jsfiddle.net/cmedina/h4m1qcoq/7/