onChange-Funktion ist nicht definiert

7

Das muss etwas Einfaches sein. Ich suchte im Internet und fand nur Syntaxfehler als Ursache für dieses Problem, aber ich kann keinen Syntaxfehler finden.

Hier ist das Javascript:

%Vor%

Und der HTML:

%Vor%

Beim Seitenladen wird die Funktion hi wie erwartet aufgerufen, aber mein onChange -Ereignis verursacht einen Firebug-Fehler und sagt, dass die Funktion nicht definiert ist. Ich bin wirklich ratlos. Habe ich "Hi" falsch geschrieben?

    
Pé de Leão 27.09.2012, 12:20
quelle

5 Antworten

14

Die hi -Funktion ist nur innerhalb des ready -Ereignishandlers enthalten. Verschieben Sie es außerhalb des Ereignishandlers, oder bearbeiten Sie die darin enthaltene Bindung (und entfernen Sie das Inline-Ereignishandlerattribut aus dem Markup):

%Vor%     
James Allardice 27.09.2012, 12:22
quelle
4

Die Funktion hi ist nur im Block ready definiert. Draußen existiert es nicht mehr.

Sie müssen Funktionsdefinitionen nicht in .ready() umbrechen, entfernen Sie sie einfach. Alternativ definieren Sie die Funktion wie folgt:

%Vor%     
Niet the Dark Absol 27.09.2012 12:22
quelle
2
%Vor%     
Amrish Prajapati 27.09.2012 12:29
quelle
1

onchange wird nur ausgelöst, wenn das Steuerelement unscharf ist. Probieren Sie stattdessen onkeypress .

%Vor%

oder

%Vor%

Verwenden Sie folgende Ereignisse anstelle von onchange :

%Vor%     
Sender 27.09.2012 12:25
quelle
1

In Ihrem Codeblock:

%Vor%

hi ist keine globale Funktion. Sie können nur innerhalb des Bereichs von function(){...} darauf zugreifen, nicht von außerhalb.

Da Sie jQuery verwenden, können Sie die Art und Weise ändern, wie Sie Ihre Funktion an das Ereignis onChange binden. Anstatt es vom html-Tag aus aufzurufen, können Sie Folgendes schreiben:

%Vor%     
LeGEC 27.09.2012 12:24
quelle