Utiliser jQuery, je voudrais capturer un événement de clavier qui est: p>
Pour clarifier, affichez ce exemple . Lorsque [modifier] p>
Apparemment, je n'étais pas clair sur ce dont j'ai besoin. P>
La fonction doit être appelée keypress code> incendies, la valeur code> code> n'a pas encore été mise à jour. P>
KeyPress CODE>, la valeur de la zone de texte n'a pas été mise à jour LI>
KeyPress code>, la valeur dans la zone de texte n'a pas été mise à jour li>
4 Réponses :
Vous pouvez écouter l'événement OK, j'ai mal compris vos besoins, mais il n'y a pas d'événement qui répondrait à vos besoins. La seule chose à laquelle je puisse penser de simuler ce comportement est la suivante: p>
Voici un violon: http://jsfiddle.net/hpxuu/13/ p>
Ce n'est évidemment pas une solution parfaite, car elle en a besoin (on pourrait argumenter inutile) de travailler correctement. Je conseillerais de repenser vos besoins, mais si ce comportement est absolument ce dont vous avez besoin, je pense que c'est une étape dans la bonne direction. P> Keydown CODE> et stocker la valeur dans une variable. Cette variable aurait la valeur tel qu'il était avant la nouvelle entrée et la nouvelle entrée serait incluse dans l'événement code> p>
Keydown / KeyPress Code> Li>
Event.Quel code>, puis convertissez-le en valeur réelle) LI>
J'ai besoin de la nouvelle valeur d'entrée avant i> la clé est levée.
Vous avez donc besoin du code pour être psychique et de connaître que l'utilisateur va soulever leur doigt le prochain milliseconde et non celui après?
@Sw bien, Umm ... N'est-ce pas exactement ce que ma suggestion ferait? Voici un violon: jsfiddle.net/hpxuu/10
Le clavier vous donnera la valeur avant la levée de la clé
Le violon ne fonctionne pas si l'utilisateur ne saisit pas à la fin de la zone de texte.
Vous pouvez utiliser Démo en direct: strong> http://jsfiddle.net/hpxuu/8/ p> p> settimeout code>:
À moins que je ne me trompe pas, le délai d'attente n'est pas garanti d'être appelé à l'heure convenue.
@SW Le mécanisme Settimeout code> a en effet un délai minimum qui est la CCA. 10ms (selon le navigateur). Cependant, vous pouvez définir une fonction setzerotimeout code> ( le code est ici A >) qui s'exécutera immédiatement après le retour du gestionnaire d'événements KeyPress.
Utilisez événement Keyup , un exemple sur jsfiddle Il se produit après em> vous soulevez la clé. Je ne sais pas ce que vous voulez réaliser, mais vous pouvez stocker l'état avant de soulever la clé (sur clé code> ou keypress code>) et de la restauration ultérieure si nécessaire. Vous pouvez également Arrêter la sortie dans l'événement CODE> MELINUP CODE> UTILISANT E.PREVENTDEFAULT () code> , donc même après que la clé est en hausse, il ne enregistrera pas les valeurs de la zone. p> p>
Vous pouvez utiliser l'événement code> INPUT CODE>, qui fonctionne dans les versions récentes de tous les grands navigateurs: Malheureusement, cela ne fonctionne pas dans IE <= 8 . Toutefois, dans ces navigateurs, vous pouvez utiliser l'événement code> de biens code> sur la propriété code> de la valeur code> à la place: p> si régulier javascript Le répondeur @andy e a couvert cela en détail sur son blog: https://web.archive.org /web/20140626060232/http://whattheheadsaid.com/2011/10/update-html5-oninput-event-plugin-for-jQuery p> p>
Incroyable, je n'ai jamais vu cet événement auparavant, mais ça marche parfaitement!
@franzlorenzon: Oui, Andy's Blog semble être brisé. Je vais lui envoyer un message.
Et si la modification de l'entrée est faite par programmation? Y a-t-il un moyen d'attraper ce changement? (Exemple: L'entrée est en lecture seule, changée uniquement via un code JavaScript - Comment attraper ce changement?)
Veuillez mettre à jour ou supprimer ce lien de blog, sa redirection sur le site Web de Spammer.
@Maidul: C'est une honte. Il y avait quelques choses utiles sur ce site. Je vais supprimer ou remplacer le lien.