353 votes

Sur l’événement de modification d’entrée ?

Lorsque vous utilisez jquery sur un l’événement sera déclenché uniquement lorsque l’entrée perd le focus

Dans mon cas, j’ai besoin de faire un appel au service (vérifier si la valeur est valide) dès que la valeur d’entrée est modifiée ? Comment est-ce que je pourrais réaliser cela ?

538voto

MikeM Points 14711

Mise à JOUR pour la clarification et l'exemple

exemples: http://jsfiddle.net/pxfunc/5kpeJ/

Méthode 1. input événement

Dans les navigateurs modernes utilisent l' input événement. Cet événement se déclenche lorsque l'utilisateur est en train de taper dans un champ de texte, coller, annuler, fondamentalement, chaque fois que la valeur de change d'une valeur à une autre.

En jQuery le faire comme ceci

$('#someInput').on('input', function() { 
    $(this).val() // get the current value of the input field.
});

La méthode 2. keyup événement

Pour les anciens navigateurs utilisent l' keyup événement (ce sera le feu une fois sur une touche du clavier a été libéré, cet événement peut donner une sorte de faux positifs parce que quand le "w" est libéré de la valeur d'entrée est changé et l' keyup événement se déclenche, mais aussi lorsque la touche "shift" est sorti l' keyup événement se déclenche, mais aucun changement n'a été effectué à l'entrée.). Aussi cette méthode ne prend pas feu si l'utilisateur clique avec le bouton droit et coller dans le menu contextuel:

$('#someInput').keyup(function() {
    $(this).val() // get the current value of the input field.
});

La méthode 3. Minuterie (setInterval ou setTimeout)

Pour contourner les limitations de l' keyup vous pouvez régler une minuterie pour vérifier périodiquement la valeur de l'entrée afin de déterminer un changement de valeur. Vous pouvez utiliser setInterval ou setTimeout pour ce faire minuterie vérifier. Voir l'marqué réponse sur ce DONC, la question: jQuery zone de texte modifier l'événement ou voir le violon pour un exemple de travail à l'aide de focus et blur événements de début et de l'arrêt de la minuterie pour un champ de saisie

187voto

Alnitak Points 143355

Si vous avez HTML5:

  • oninput (se déclenche uniquement lorsqu'un changement survient, mais le fait immédiatement)

Sinon, vous devez vérifier tous ces événements, ce qui pourrait indiquer un changement à l'entrée de la valeur de l'élément:

  • onchange
  • onkeyup (pas keydown ou keypress que l'entrée de la valeur de ne pas avoir la pression sur la touche en elle encore)
  • onpaste (lors de la prise en charge)

et peut-être:

  • onmouseup (Je ne suis pas sûr à ce sujet)

81voto

Drew Noakes Points 69288

Sans utilisation de jQuery et HTML5, vous pouvez utiliser le `` événement:

Cela se déclenche chaque fois que des modifications au libellé de l’entrée.

Prise en charge dans IE9 + et d’autres navigateurs.

Essayez-le vivent dans un jsFiddle ici.

2voto

Jivings Points 10892

Si vous souhaitez l’événement déclenché chaque fois que quelque chose est changé dans l’élément, puis vous pouvez utiliser l’événement keyup .

1voto

softwaredeveloper Points 142

Il y a des événements jQuery comme keyup et keypress que vous pouvez utiliser avec les éléments HTML input. Vous pouvez en outre utiliser l’événement flou() .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X