Cette question est un suivi post Failed to set event handler in javascriptImpossible de définir gestionnaire d'événements javascript
Je veux ajouter un gestionnaire d'événements pour les contrôles de saisie de texte. Le contrôle de boîte de saisie est généré dynamiquement. Mon code est comme:
_inputbox = document.createElement("input");
_inputbox.type = "text";
_inputbox.id = settings[zindex];
_inputbox.onblur = checkName;
checkName() est défini précédemment. Mais quand j'apporte quelque chose dans la boîte et déplace le focus vers un autre contrôle, checkName() n'est pas exécuté.
Dans l'onglet DOM de Firebug, je trouve que onblur est assigné à checkName() correctement.
Dans l'onglet HTML de Firebug, je trouve que la boîte de saisie ne définit qu'un "ID" et un "type". Pas de "onblur" dans son code HTML. Si je modifie le HTML et ajoute onblur = checkName() manuellement. La fonction peut être appelée avec succès.
code HTML
<input type="text" id="Datastore">
Est-ce que quelqu'un peut me aider? Merci beaucoup.
Votre code fonctionne pour moi: http://jsfiddle.net/PvLew/. Est-ce que 'checkName' se trouve dans la portée où vous l'affectez? –
@Felix Merci. En fait, la boîte de saisie sera ajoutée à une cellule dans le cadre d'une table. J'essaie d'isoler le code pour trouver où la raison racine est. – Landy
Etes-vous sûr que votre page n'est pas mise en cache et que vous regardez l'ancien code qui n'a pas ajouté de gestionnaire d'événements? – epascarello