<select>
a cette API. Et quoi <input>
?
174
Vous pouvez utiliser .change()
$('input[name=myInput]').change(function() { ... });
Cependant, cet événement ne se déclenchera que lorsque le sélecteur aura perdu le focus, vous devrez donc cliquer ailleurs pour que cela fonctionne.
Si ce n'est pas tout à fait raison pour vous, vous pouvez utiliser quelques - unes des autres événements de jQuery comme keyup , keydown ou keypress - selon l'effet exact que vous voulez.
change
cela ne se déclenchera que lorsque l'élément d'entrée aura perdu le focus. Il y a aussi l'input
événement qui se déclenche chaque fois que la zone de texte est mise à jour sans qu'il soit nécessaire de perdre le focus. Contrairement aux événements clés, il fonctionne également pour coller / faire glisser du texte.change
n'est pas pris en charge par IE9, vous pouvez utiliserfocusout
pour avoir le même comportementComme @pimvdb l'a dit dans son commentaire,
(Voir la documentation .)
C'est tellement utile qu'il vaut la peine de le mettre dans une réponse. Actuellement (v1.8 *?) Il n'y a pas de commodité .input () fn dans jquery, donc la façon de le faire est
la source
$('form').on('change input', function);
fait l'affaire pour moi. Merci.Je suggérerais d'utiliser l'événement keyup comme ci-dessous:
Il y a plusieurs façons d'obtenir le même résultat, donc je suppose que c'est une question de préférence et dépend de la façon dont vous voulez que cela fonctionne exactement.
Mise à jour: cela ne fonctionne que pour la saisie manuelle, pas pour copier et coller.
Pour copier et coller, je recommanderais ce qui suit:
la source
Voici le code que j'utilise:
Cela fonctionne très bien, en particulier lorsqu'il est associé à un
jqGrid
contrôle. Vous pouvez simplement taper dans une zone de texte et afficher immédiatement les résultats dans votre fichierjqGrid
.la source
Il existe un et un seul moyen fiable de le faire , et c'est en extrayant la valeur dans un intervalle et en la comparant à une valeur mise en cache.
La raison pour laquelle c'est le seul moyen est qu'il existe plusieurs façons de modifier un champ de saisie en utilisant diverses entrées (clavier, souris, coller, historique du navigateur, entrée vocale, etc.) et que vous ne pouvez jamais les détecter toutes en utilisant des événements standard dans une croix. -environnement navigateur.
Heureusement, grâce à l'infrastructure d'événements de jQuery, il est assez facile d'ajouter votre propre événement inputchange. Je l'ai fait ici:
Utilisez-le comme:
$('input').on('inputchange', function() { console.log(this.value) });
Il y a une démo ici: http://jsfiddle.net/LGAWY/
Si vous avez peur des intervalles multiples, vous pouvez lier / dissocier cet événement sur
focus
/blur
.la source
$('body').on('inputchange', 'input', function() { console.log(this.value) });
:? Ou pas, comme mentionné ici: github.com/EightMedia/hammer.js/pull/98 ?Je recommande d'utiliser un
this
mot-clé pour accéder à l'ensemble de l'élément afin que vous puissiez faire tout ce dont vous avez besoin avec cet élément.la source
Ce qui suit fonctionnera même s'il s'agit d'appels dynamiques / Ajax.
Scénario:
Html,
J'espère que ce code de travail aidera quelqu'un qui essaie d'accéder dynamiquement aux appels / Ajax ...
la source
la source
Vous pouvez simplement travailler avec l'identifiant
la source
Vous pouvez le faire de différentes manières, keyup en fait partie. Mais je donne l'exemple ci-dessous avec le changement.
NB: input [name = "vat_id"] remplacer par votre identifiant ou nom d' entrée .
la source
Si vous souhaitez déclencher l'événement à mesure que vous tapez , utilisez ce qui suit:
Si vous souhaitez déclencher l'événement en quittant le champ de saisie , utilisez ce qui suit:
la source
$(document).on('change', 'input[name=myInput]', function() { ... });
la source
Cela a fonctionné pour moi. Si le champ avec le nom fieldA est cliqué ou qu'une clé est entrée, il met à jour le champ avec l'id fieldB .
la source
Vous pourriez utiliser
.keypress()
.Par exemple, considérez le HTML:
Le gestionnaire d'événements peut être lié au champ d'entrée:
Je suis totalement d'accord avec Andy; tout dépend de la façon dont vous voulez que cela fonctionne.
la source