webentwicklung-frage-antwort-db.com.de

onclick-Ereignis funktioniert nicht in JavaScript

Ich habe JavaScript-Code in einer HTML-Seite mit einer Schaltfläche. Ich habe eine Funktion namens "click ()", die das onClick-Ereignis der Schaltfläche behandelt. Der Code für die Schaltfläche lautet wie folgt:

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

Das Problem ist, dass beim Klicken auf die Schaltfläche die Funktion nicht aufgerufen wird. Was mache ich hier falsch?
Vielen Dank

45

Zwei Beobachtungen:

  1. Du solltest schreiben

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

    anstatt

    <input type="button">button text</input>
    
  2. Sie sollten Ihre Funktion umbenennen. Die Funktion click() ist bereits auf einer Schaltfläche definiert (simuliert einen Klick) und erhält eine höhere Priorität als Ihre Methode.

Beachten Sie, dass es hier einige Vorschläge gibt, die einfach falsch sind, und Sie sollten nicht zu viel Zeit damit verbringen:

  • Verwenden Sie nicht onclick="javascript:myfunc()". Verwenden Sie das Präfix javascript: Nur innerhalb des Attributs href eines Hyperlinks: <a href="javascript:myfunc()">.
  • Sie müssen nicht mit einem Semikolon enden. onclick="foo()" und onclick="foo();" funktionieren beide einwandfrei.
  • Ereignisattribute in HTML unterscheiden nicht zwischen Groß- und Kleinschreibung, daher funktionieren onclick, onClick und ONCLICK. Es ist üblich, Attribute in Kleinbuchstaben zu schreiben: onclick. Beachten Sie, dass bei Javascript die Groß- und Kleinschreibung beachtet wird. Wenn Sie also document.getElementById("...").onclick = ... schreiben, muss es muss nur Kleinbuchstaben sein ).
96
Elian Ebbing

click () ist ein reserviertes Wort und bereits eine Funktion. Ändern Sie den Namen von click () zu runclick ()

13
Jimmy Rousseau

Versuche dies

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

Überprüfen Sie, ob Sie dieselbe Funktion aufrufen oder nicht.

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

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

Versuchen Sie, die Großschreibung zu korrigieren. onclick anstelle von onClick

Referenz: Mozilla Developer Docs

0
Wylie

Ich schlage vor, Sie tun: <input type="button" value="button text" onclick="click()"> Hoffe, das hilft Ihnen!

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

Ich hatte das gleiche Problem, wo Onclick-Funktionsaufrufe nicht funktionieren würden. Ich hatte die Funktion in das übliche "$ (document) .ready (function () {})" eingefügt. Block zum Umbrechen von JQuery-Skripten. Das Auskommentieren dieses Blocks löste das Problem.

0
Tony

Heute ist mir das auch passiert. Der Funktionsname steht möglicherweise in Konflikt mit Schlüsselwörtern. Mein Fall ist scrape(). Ich ändere den Funktionsnamen, alles funktioniert gut.

0
lover summer

Ja, Sie sollten den Namen Ihrer Funktion ändern. Javascript hat Methoden reserviert und onclick = >>>> click () <<<< ist eine davon, benenne sie also einfach um, füge ein 's' am Ende hinzu oder so. starker Text `

0
Jerry Noel