jQuery 監控鍵盤一段時間內沒輸入


監控一段時間沒輸入可用於簡單的輸入完成


上次實現了一個模擬輸入完成則發送請求到后台獲取數據的並顯示到前台的問題,其中核心的判斷標准是輸入完成的定義。

即:用戶怎么算輸入完成。

我使用的標准是,當一個文本框中,里面的內容1秒鍾無變化,則表示用戶1秒鍾內無輸入,說明用戶是已經輸入完成,再等待返回數據了。那么jQuery如何實現判斷1秒內無輸入呢。

<!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>

原理


就是這樣一段精簡的代碼。其原理可簡述如下:

用戶每一次按下鍵盤,都記錄當前的時間,然后再1秒后再判斷一下時間。

lastTime由於是全局變量,所以當用戶在輸入的時候,lastTime是一直在變化的,所以一秒后再用lastTime-e.timeStamp,只有最后按下的e.timeStamp那一次才會為0。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM