關於keydown與keyup所犯過的一些小錯誤

昨天在寫界面的時候,想實現一個功能,就是在文本框輸入時,自動計算字數:
code

一開始,個人想法是這樣的,給文本框添加個事件keydown,當點擊鍵盤是,自動就算文本框裏面字符的長度,這時候就出現了一個問題,當我按下鍵盤時,計算得是我按以前的字符,如圖:事件

代碼以下:io

$("#key_sen").keydown(function(event){
				       var keysenLen = $("#key_sen").val().length ;
				       if ($("#key_sen").val()){
				      $("#zisu").text("(共" + keysenLen + "個字)");
				      } else {
				      	$("#zisu").text("");
				      }


接着我就是是的在 計算字符的時候,直接加一:event

 var keysenLen = $("#key_sen").val().length + 1;

這時候,同時出現個問題,就是當你刪除的時候,字符長度仍是以前的,我按下1234567,而後刪除7,顯示長度爲8:如圖function

後來想一想,key有兩個事件,一個是keydown,一個是keyup,keydown,是在你輸入顯示在屏幕以前就發生的了,keyup是輸入顯示後才發生,果真換成keyup ,就沒有出現什麼毛病。class

固然keyup,有個用處,就是限定你輸入,譬如,若是之規定用戶輸入數字,那能夠這麼寫:im

$("#key_sen").keydown(function(event){
				       if (event.keyCode > 105 || event.keyCode < 97){
				       	return false
				       }
					});

這時候,你輸入除數字外的鍵,直接被鎖定,不會顯示。img

相關文章
相關標籤/搜索