2010-12-12 10 views
0

Diese Frage Failed to set event handler in javascript aus Post folgenFehlgeschlagen Ereignishandler gesetzt in Javascript

Ich möchte einen Event-Handler für Eingabetext Steuerelemente hinzufügen. Das Eingabefeld-Steuerelement wird dynamisch generiert. Mein Code ist wie:

_inputbox = document.createElement("input"); 
_inputbox.type = "text"; 
_inputbox.id = settings[zindex]; 
_inputbox.onblur = checkName; 

checkName() ist bereits definiert. Aber wenn ich etwas in das Feld einfüge und den Fokus auf ein anderes Steuerelement verschiebe, wird checkName() nicht ausgeführt.

In der Registerkarte DOM von Firebug finde ich, dass der Onblur checkName() korrekt zugewiesen wird.

In der Registerkarte HTML von Firebug finde ich das Eingabefeld nur eine "ID" und einen "Typ" definiert. Kein "onblur" in seinem HTML-Code. Wenn ich HTML editiere und onblur = checkName() manuell hinzufüge. Die Funktion kann erfolgreich aufgerufen werden.

HTML-Code

<input type="text" id="Datastore"> 

Gibt es jemand kann mir helfen? Danke vielmals.

+1

Ihr Code funktioniert für mich: http://jsfiddle.net/PvLew/. Ist 'checkName' in dem Bereich, in dem Sie es zuweisen? –

+0

@Felix Danke. Tatsächlich wird das Eingabefeld an eine Zelle als Teil der Tabelle angehängt. Ich versuche den Code zu isolieren, um herauszufinden, wo der Grund liegt. – Landy

+0

Sind Sie sicher, dass Ihre Seite nicht zwischengespeichert ist und Sie sich alten Code ansehen, der keinen Event-Handler hinzugefügt hat? – epascarello

Antwort

0

Versuchen

If(_inputbox.addEventListener) { 
    _inputbox.addEventListener('blur', checkName, false); 
} else { 
    _inputbox.attachEvent('onblur', checkName); 
} 
+0

Danke, aber kein Glück. Der Code wird ohne Fehler ausgeführt, aber auf der Registerkarte DOM von Firebug ist das Attribut 'blur' immer noch 'blur()'. – Landy

Verwandte Themen