2010-10-31 4 views
2

Comme l'indique le titre de ma question. chaque fois que la valeur d'un élément d'entrée change, je veux qu'il exécute une fonction. Je sais que la fonction fonctionne parce que j'ai été testé dans des événements onkey comme onkeyup. Mais, je ne vais pas utiliser les événements onkey car j'ai des scripts qui manipulent la valeur de l'élément d'entrée. Je sais également que le problème réside dans le premier argument de la méthode addEventListener. J'ai tré plusieurs arguments comme DOMAttrModified/change/DOMsomethingelse mais ça ne marche pas. J'ai également regardé quelques questions similaires ici dans SO, JS Events: hooking on value change event on text inputs. Le code ci-dessous fonctionne pour les événements onkey:Valeur de l'élément d'entrée modifiée: faire quelque chose

inputTitle.addEventListener('DOMAttrModified',function(event){ 
     someFunction(this.value); 
},false); 

Quelqu'un peut-il m'aider. J'ai essayé de résoudre ce problème depuis longtemps sans succès et je sais que c'est juste un petit problème. SVP donnez moi un exemple de code qui est testé et qui fonctionne.

MISE À JOUR: J'ai eu tort à propos d'une chose ci-dessus. Si j'utilise l'événement "change", la fonction sera exécutée après avoir perdu le focus sur l'élément d'entrée. Donc ça marche. Mais je veux que cela fonctionne comme un événement onkeyup, où la fonction est exécutée en temps réel comme Google instantanée. Malheureusement, je ne peux pas utiliser l'événement 'keyup' parce que j'ai des scripts ou un bouton qui modifie la valeur de l'élément d'entrée. Lorsque ces scripts sont exécutés, la fonction n'est pas exécutée.

UPDATE2: J'ai trouvé une solution à ce problème. Et c'est pour ajouter des scripts supplémentaires aux scripts valemodification qui exécutent le "someFunction". Je n'aime pas vraiment cette solution, car ce n'est pas un bon codage. J'ai peut-être quatre scripts aux appels qui fonctionnent

+0

pas Pouvez-vous faire de votre valeur modifiant le feu de code manuellement l'auditeur? – thejh

+1

Pourquoi l'événement 'onchange' ne fonctionne-t-il pas? Il est déclenché chaque fois que le focus sort * et * le contenu du champ de saisie est modifié. –

+0

vous pouvez utiliser les événements 'key' (* comme vous l'avez dit *) ou l'événement' onchange', qui est déclenché lorsque l'élément perd le focus (* après avoir changé son contenu .. *) –

Répondre

6

Essayez ceci:

inputTitle.addEventListener("change", function(){}); 
Questions connexes