jQuery: ai-je besoin de keyUp et les événements de changement?
J'ai une page avec 2 formes; chaque forme a un champ de texte de saisie;
La valeur trouvée dans le texte de saisie de la 1ère formulaire doit être la même chose avec la valeur trouvée dans le texte d'entrée de la 2ème et de la forme;
Lorsque la valeur de changements, l'autre champ de saisie de texte modifie également sa valeur;
Dois-je utiliser à la fois onkeyup
et onchange
événements?
Si non, que l'on est le droit de l'utiliser?
Je demande cela car il semble que j'ai 2 requêtes post, et je pense que c'est pourquoi.
$('input.searchbox').keyup( function(){
$('input.txtfieldsearch').val($('input.searchbox').val());
listViewUpdate();
$('input.txtfieldsearch').trigger("keyup");
});
$('input.txtfieldsearch').keyup( function(){
$('input.searchbox').val($('input.txtfieldsearch').val());
listViewUpdate();
});
$('input.searchbox').change( function(){
$('input.txtfieldsearch').val($('input.searchbox').val());
listViewUpdate();
$('input.txtfieldsearch').trigger("change");
});
$('input.txtfieldsearch').change( function(){
$('input.searchbox').val($('input.txtfieldsearch').val());
listViewUpdate();
});
- mais qui est le droit à l'usage?
- Quand voulez-vous les valeurs de mise à jour?
change
etkeyup
sont différents événements, et vous pouvez utiliser les deux. - Avez-vous remarqué que vous appelez
listViewUpdate
deux fois à partir de lasearchbox
? - oui je l'ai fait; 1er pour keyup; 2e pour le changement
- Non, je voulais dire deux fois pour chaque événement. Vous déclenchez le gestionnaire sur le
txtfieldsearch
qui va exécuterlistViewUpdate
de nouveau. - oui, c'est vrai, cela pourrait être l'un des problème, réponse possible
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
$.sur()
la fonction et de l'attacher multiples gestionnaires.onkeyup
essentiellement déclenché lorsqu'une touche a été pressée par l'utilisateur, puis libéré.onchange
peut se produire si l'utilisateur utilise le navigateur de la fonctionnalité saisie semi-automatique. Vous devez utiliser le.sur()
méthode pour attraper les deux événements, juste au cas où:Vous pouvez utiliser seulement "d'entrée" de l'événement si vous n'avez pas besoin de fournir un soutien pour les anciens navigateurs. Il sera déclenché à chaque fois que la modification d'une valeur dans l'élément d'entrée. Voici une liste des navigateurs pris en charge: https://developer.mozilla.org/en-US/docs/Web/Events/input
Si vous souhaitez réagir à changer, vous devez utiliser
change
.Il ya certaines occasions où un keyup ne pas faire un changement(comme shift) et les occasions où il y a un changement sans keyup (coller).
keyup
etchange
?change
se déclenche uniquement si vous le flou le champ de saisie.