web-dev-qa-db-fra.com

événement onclick ne fonctionne pas en JavaScript

J'ai du code JavaScript dans une page HTML avec un bouton. J'ai une fonction appelée 'click ()' qui gère l'événement onClick du bouton. Le code du bouton est le suivant:

<input type="button" onClick="click()">button text</input>  

Le problème est que lorsque l'on clique sur le bouton, la fonction n'est pas appelée. Qu'est-ce que je fais mal ici?
Merci

45
Nate Koppenhaver

Deux observations:

  1. Tu devrais écrire

    <input type="button" value="button text" />
    

    au lieu de

    <input type="button">button text</input>
    
  2. Vous devriez renommer votre fonction. La fonction click() est déjà définie sur un bouton (elle simule un clic) et obtient une priorité plus élevée que votre méthode.

Notez qu'il y a quelques suggestions ici qui sont fausses, et vous ne devriez pas y passer trop de temps:

  • N'utilisez pas onclick="javascript:myfunc()". Utilisez uniquement le préfixe javascript: À l'intérieur de l'attribut href d'un hyperlien: <a href="javascript:myfunc()">.
  • Vous n'êtes pas obligé de terminer par un point-virgule. onclick="foo()" et onclick="foo();" fonctionnent parfaitement.
  • Les attributs d'événement en HTML ne sont pas sensibles à la casse, donc onclick, onClick et ONCLICK fonctionnent tous. Il est courant d'écrire des attributs en minuscules: onclick. notez que javascript est sensible à la casse, donc si vous écrivez document.getElementById("...").onclick = ..., alors il doit soyez tout en minuscule .
96
Elian Ebbing

click () est un mot réservé et déjà une fonction, changez le nom de click () en runclick () cela fonctionne bien

13
Jimmy Rousseau

Essaye ça

<input type="button" onClick="return click();">button text</input>  
4
Nathanphan

Vérifiez que vous appelez la même fonction ou non.

<script>function greeting(){document.write("hi");}</script>

<input type="button" value="Click Here" onclick="greeting();"/>
3
user3669026

Essayez de fixer la capitalisation. onclick au lieu de onClick

Référence: Mozilla Developer Docs

0
Wylie

Je vous suggère de faire: <input type="button" value="button text" onclick="click()"> J'espère que cela vous aide!

0
Kyle Gagnon
<script>
//$(document).ready(function () {
function showcontent() {
        document.getElementById("demo22").innerHTML = "Hello World";
}
//});// end of ready function
</script>

J'ai eu le même problème où les appels de fonction onclick ne fonctionnaient pas. J'avais inclus la fonction dans l'habituel "$ (document) .ready (function () {});" bloc utilisé pour envelopper les scripts jQuery. Commenter ce blocage a résolu le problème.

0
Tony

Aujourd'hui, cela m'est aussi arrivé. Le nom de la fonction est peut-être en conflit avec les mots-clés. Mon cas est scrape(). Je change le nom de la fonction, tout fonctionne bien.

0
lover summer

Oui, vous devriez changer le nom de votre fonction. Javascript a réservé des méthodes et onclick = >>>> click () <<<< en fait partie, il suffit de le renommer, d'ajouter un 's' à la fin de celui-ci ou quelque chose du genre. texte fort `

0
Jerry Noel