Au cours des deux derniers jours, nous avons fait une fonction qui nécessite une surveillance en temps réel de l'entrée de la zone de texte, et nous avons rencontré le problème de nausées que la méthode d'entrée chinoise ne peut pas déclencher l'événement Onkeup.
La manifestation spécifique est la suivante:
Lors de l'écoute d'un événement de Keyup d'entrée, la méthode d'entrée anglaise peut détecter la modification de la valeur de la zone de texte via l'événement KEYUP en temps réel. Cependant, lorsque la méthode d'entrée devient chinois, l'événement de Keyup d'entrée ne sera pas déclenché normalement. C'est la façon d'écrire précédente.
<Html> <A-head> <script type = "text / javascript" src = "// www.vevb.com/static/js/jquery-1.4.2.min.js"> </ script> </ head> <pody> <p> Utilisez des événements Keyup pour détecter le contenu de la zone de texte: </p> <p> AutoChatletel = "OFF" /> <span id = "keyup_s"> </span> <script type = "text / javascrip
Comme vous pouvez le voir, cette écriture rencontre le problème que le chinois ne peut pas déclencher l'événement de Keyup. J'ai donc cherché une solution. Je me suis souvenu que l'invite de la barre de recherche à Baidu ne semblait avoir aucun problème, alors j'ai commencé à regarder le JS de Baidu. Le JS de Baidu est laid ... La méthode est nommée comme une lettre, et finalement j'ai constaté qu'il utilisait probablement le délai d'expiration comme minuterie pour surveiller régulièrement la modification de la boîte d'entrée. Pas très satisfait de cette méthode. J'ai donc continué à chercher une meilleure solution, j'ai donc trouvé deux événements: onInput et OnPropertyChange.
OnInput est disponible sous Firefox, tandis que OnPropertyChange est disponible sous IE. Il existe quelques différences entre les deux méthodes.
OnInput ne peut détecter que des modifications de la valeur de la propriété, tandis que OnProperTyChange peut détecter les modifications dans toutes les propriétés contenant la valeur. Cela a donc commencé à changer pour cela.
<html> <éadf> <script type = "text / javascript" src = "// www.vevb.com/static/js/jquery-1.4.2.min.js"> </ script> </ head> <pody> <p> Utiliser les événements onInput et onPropertyChange pour détecter le contenu de la zone de texte: </p> <p> <puty type = "Text" Name = "FOOTORP_I" id = "inpitorp_i" AutoCompletele = "OFF" /> <span id = "inpitorp_s"> </span> <script type = "text / javascript"> // Déterminez d'abord si le navigateur est vicieux, c'est-à-dire. Il n'y a aucun moyen d'écrire quelque chose comme IE. var bind_name = 'input'; if (navigator.useragent.indexof ("msie")! = -1) {bind_name = 'PropertyChange'; } $ ('# inpitorp_i'). bind (bind_name, function () {$ ('# inpitorp_s'). text ($ (this) .val ());}) </script> </p> </ body> </html>Le problème a été résolu ainsi.