La surveillance d'aucune saisie pendant un certain temps peut être utilisée pour effectuer une saisie simple
La dernière fois, nous avons implémenté un problème consistant à envoyer une requête en arrière-plan pour obtenir des données lorsque la saisie simulée est terminée et à les afficher à la réception. Le critère de jugement principal est la définition de l'achèvement de la saisie.
C'est-à-dire : comment l'utilisateur compte-t-il la saisie comme terminée.
La norme que j'utilise est que lorsque le contenu d'une zone de texte ne change pas pendant 1 seconde, cela signifie que l'utilisateur n'a pas saisi dans 1 seconde, indiquant que l'utilisateur a terminé la saisie et attend les données de retour. . Alors, comment jQuery détermine-t-il s'il n'y a pas d'entrée dans un délai d'une seconde.
<!DOCTYPE html> <html> <head> <script src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.js"></script> <script> var lastTime; $(function(){ $('#text1').keyup(function (e) { lastTime = e.timeStamp; setTimeout(function () { if (lastTime - e.timeStamp == 0) { alert("1秒内没再输入,可以发送查询"); } }, 1000); }); }) </script> </head> <body> <input id="text1" type="text" value="" /> </body> </html>
Principe
C'est un morceau de code tellement concis. Son principe peut être brièvement décrit ainsi :
Chaque fois que l'utilisateur appuie sur le clavier, l'heure actuelle est enregistrée, puis l'heure est jugée après 1 seconde.
Puisque lastTime est une variable globale, lastTime change toujours lorsque l'utilisateur tape, donc si vous utilisez lastTime-e.timeStamp après une seconde, seul le dernier e.timeStamp appuyé sera 0. .