Événement pour les textarea changements
J'ai une bibliothèque JavaScript qui met à jour une caché <textarea>
élément HTML avec des données basées sur certaines choses.
Dans mon (JavaScript) de l'application, j'aimerais savoir quand ces mises à jour sans avoir à passer par le code de la bibliothèque.
J'espérais qu'il a été un événement pour cela, mais apparemment pas.
Comment pourrais-je écouter les changements de la textarea?
Changements peuvent être aussi simple que de document.getElementById("myTextarea").value = "hello";
MODIFIER je vais être en utilisant FireFox uniquement, étant donné que ce code ne faire partie d'une suite de tests je suis en train de construire.
Je ne comprends pas, quel type d'événement que vous êtes en train de parler? -- Après l'avoir lu trois fois de plus, j'ai l'obtenir. Vous voulez un événement pour une quelconque mise à jour sur qui caché textarea.
le cas de l'incendie lorsque le contenu du textarea est différente de la précédente. J'ai pensé
je sais :(. Comment pourrais-je aller sur d'interrogation? JavaScript étant mono-thread, et tous les, pas sûr que ce soit possible.
Vous pouvez définir un
le cas de l'incendie lorsque le contenu du textarea est différente de la précédente. J'ai pensé
onchange
permettrait de faire cela, mais il ne fait pas si vous n'interagissent pas avec le textarea lui-même.onchange
vraiment ne semble pas y couper, supprimé ma réponse. Qui suce - si onchange n'est pas cela, je ne peux pas penser à tout autre événement qui permettraient de capter ce, à l'exception de souvent de vote pour les champs de valeur qui, évidemment, est horrible.je sais :(. Comment pourrais-je aller sur d'interrogation? JavaScript étant mono-thread, et tous les, pas sûr que ce soit possible.
Vous pouvez définir un
setTimeout
toutes les x millisecondes. Il peut être fait, mais est, bien sûr, horriblement cher. Vérifiez d'abord si mon 2ème réponse pourrait vous aider.
OriginalL'auteur Luca Matteis | 2010-01-15
Vous devez vous connecter pour publier un commentaire.
Si vous contrôlez la bibliothèque Javascript que vous mentionnez, je dirais que le plus simple serait d' déclencher manuellement la
change
événement à chaque fois que vous modifiez la valeur d'un champ.Je pense que c'est la façon dont c'est fait en JQuery: Événements/modifier Sinon, un simple
document.getElementById('myTextarea').onchange()
pourrait fonctionner ainsi.Si vous avez de nombreux appels, vous pouvez envelopper le changement de la valeur, et le déclenchement de l'événement dans un
changeFormElement(id, value)
fonction.Cela nécessite, bien sûr, que vous pouvez modifier chaque instance de quand un textarea est changé. Si ce qui est donné, c'est probablement la façon la plus élégante.
change
en jQuery n'est déclenché lorsque quelqu'un perd le focus sur un champ de saisie+1 Pekka. Je suis d'accord que l'édition de la bibliothèque serait le meilleur plan d'action, si possible. @Harmen: Il parle de l'édition de la bibliothèque à la personne utilise pour faire le feu de la
change
événement.OriginalL'auteur Pekka 웃
Je sais que c'est probablement pas ce que vous voulez entendre mais seulement IE semble avoir un événement qui peut gérer cela. C'est le
onpropertychange
événement.Si vous êtes autorisé à modifier le code de la bibliothèque, je ferais comme Pekka mentionné et modifier le code pour qu'il déclenche l'événement de changement. La seule vraie croix-navigateur chose que vous pourriez faire est d'utiliser une minuterie. Si vous utilisez un assez faible fréquence de la minuterie, il ne serait probablement pas perceptible pour l'utilisateur final que vous n'utilisiez pas un événement.
Je suis toujours dubitatif sur de mentionner IE-que des solutions. Peu importe combien vous pourriez vous poster pour le bien de la personne, et comment les corriger peut-être, certains IE haïr maniaque downvotes vous sans mentionner pourquoi.
OriginalL'auteur Andy E
Dans FireFox, vous pouvez étendre la
value
setter:Puis-je le feu ce pour un élément spécifique?
Non, mais vous pouvez tester
this.id
à l'intérieur.oui, vous pouvez tirer d'un élément spécifique:
textareaObj.__defineSetter__('value', ...)
OriginalL'auteur Darin Dimitrov
Il y a bien sûr un unelegant et dishonorificabilitudinitatible moyen de parvenir, par la définition d'une minuterie:
Cela permettra de comparer la valeur de toutes les cinq secondes à la valeur de cinq secondes plus tôt.
OriginalL'auteur Harmen
DOM événements ne se produisent pas lorsque la valeur du nœud est sertie par programme à l'aide du nœud.valeur; la Recherche de la documentation de l'API de l'option JavaScript de votre bibliothèque et de voir si ils ont un mécanisme de notification.
ÉDITÉ: Firefox? Oh, génial, alors il existe une telle fonction intéressante que de regarder. Il le regarde pour des changements de propriété. Pour vous, cela signifie que lors de la bibliothèque de changement de la valeur de la propriété de la textarea, vous recevrez une notification. Quoi de plus agréable, c'est que vous-même pouvez contrôler la valeur positionnée à la propriété. Voir en action.
Peut-être que cette aide? 🙂
OriginalL'auteur nemisj
Veuillez noter que, dans
textarea
valeur ne fonctionne pas, il fonctionne comme "innerHTML
", afin de l'utiliser commeOriginalL'auteur Saif