9
votes

JQuery Écouter pour tous les changements d'entrée de texte

J'ai un élément d'entrée dans une forme que j'aimerais pouvoir extraire sa valeur lorsque la valeur change. Jetez un coup d'œil à ce violon: http://jsfiddle.net/spryno724/wabzw/1/.

à l'aide de l'événement modifier , je suis capable d'afficher la valeur de l'entrée de texte lorsque l'entrée perd la mise au point. Cependant, la valeur ne met pas à jour lorsque le formulaire est réinitialisé ou lorsque JavaScript efface la valeur de l'entrée de texte.

Y a-t-il un événement spécifique que je puisse écouter pour lequel sera expédié lorsque tout changement est effectué sur un contrôle d'entrée de texte?

J'aimerais éviter les contours de travail, tels que l'écoute du moment où le formulaire est réinitialisé ou lorsque le bouton clair est enfoncé . Ceci est un exemple simplifié de ce que fait ma demande, et cela deviendra fou assez vite si j'essaie de faire tout cela.

Merci pour votre temps.


6 commentaires

Je travaillais juste sur ce même problème aujourd'hui. Le jQuery .on est censé gérer cela mais je ne pouvais pas le faire fonctionner. $ ("# ElementID"). Sur ("Changer d'entrée Chance de Pâte de PropertyChange Coller", gestionnaire) ...


Hmm ... je n'ai jamais utilisé .on () avant. Je vais regarder dans ça


J'ai utilisé .Live () avant mais qui a été obsolète à partir de la version 1.7 et .on () est maintenant la méthode préférée


@Alfalfastrange voir mon commentaire à Johnny sur le .Live () événement


@thecodeparadox Merci d'avoir endufer les notes importantes.


Dupliqué possible de JS Events: Accrochaing sur la valeur Changement d'événement sur Entrées de texte


4 Réponses :


12
votes
$(document).ready(function() {
    $('input.clear, input[type=reset]').on('click', function() {
        $('input.input').val('').change();
        $('p.display').text('The value of the text input is: ');
    });

    $('input.input').on('keyup change', function() {
        $('p.display').text('The value of the text input is: ' + $(this).val());
    });
});​

7 commentaires

Merci mais frapper la réinitialisation ne mettra pas à jour le texte au-dessus de l'entrée.


Qu'en est-il lorsque les données sont définies sur la valeur de l'entrée d'une autre fonction? .keyup ne couvrira pas ça


J'apprécie votre contribution, mais j'avais également mentionné que je voudrais éviter les contours de travail, tels que l'écoute du moment où le formulaire est réinitialisé ou lorsque le bouton clair est enfoncé. Ceci est un exemple simplifié de ce que fait ma application, Et ça va devenir fou assez vite si j'essaie de faire tout ça. "


Je vois. Ça marche. Cependant, la réinitialisation du formulaire ne met pas à jour le texte au-dessus de l'entrée.


@ SPRYNO724 La réinitialisation ne fonctionne pas mais Effacer le .. Qu'est-ce que la réinitialisation est censée faire?


La réinitialisation est une fonction HTML qui effacera (ou réinitialiser) tous les éléments de formulaire sous une forme donnée à leurs valeurs par défaut.


Utilisation du sélecteur $ ('formulaire'). ON ("Changer de touche", "INPUT.Input", fonction () {}); sera beaucoup plus rapide lorsque vous avez beaucoup de champs. jsfiddle.net/duqt8jv2



-1
votes

Essayez

$('#input').live('change',function() {         })


6 commentaires

.Live () est chaque fois que de nouveaux éléments sont ajoutés de manière dynamique à la page et doivent avoir des événements attachés à eux: API.JQUERY.com/Live .


N'utilisez pas .Live () il a été obsolète à partir de la version 1.7


Je sais ce que vous avez dit est vrai à ce sujet d'être obsolète. Étrangement, j'avais une situation où je voulais changer la couleur d'arrière-plan d'une entrée lors de la modification de la valeur et que vous utilisez. "Changer '... a travaillé lors de l'utilisation de .on (" Changer "... JQuery 1.7.3. N'importe quelle idée pourquoi?


Ouais j'ai eu le même problème, je pense que je viens de sucer JQuery


@Johnnynymnymnonique Vous devez passer dans le contexte du sélecteur sur sur , sinon il fonctionnera simplement comme si vous utilisez .Change ()


@Johnnymnymnonique Veuillez mettre à jour votre réponse pour refléter les modifications apportées à l'API. Comme il se trouve actuellement, cela ne résout pas le problème de l'OPS et il ne fera probablement que favoriser la mauvaise pratique.



2
votes

Cette question est un duplicata d'un autre. Voir la réponse avec le plus grand nombre de votes ultérieurs comme réponse à ma question:

JS Events: Accrocation sur la valeur Changement d'événement sur Entrées de texte


1 commentaires

Vous êtes censé (voter à) fermer la question en tant que duplicata alors, pas après une réponse.



1
votes

remplacement val méthode de jQuery

html

js xxx

note Cela fonctionnera uniquement si la méthode de VAL est appelée à partir de myInput variable


0 commentaires