2 回答

TA貢獻1884條經驗 獲得超4個贊
jq的keyup或者change是怎么讀取識別input的字符的,里面的機制是什么樣的,既然能被前端讀取,你們就意味著可以截獲?還是瀏覽器內部識別的?
這個是JavaScript實現的功能。當然就可以通過js來獲取。
基本上,前端用戶輸入校驗都是通過ajax實現的,一般來說分成以下兩種
實時檢測
實時檢測一般是由前端js負責,最后輸入框失去焦點時通過ajax請求服務端檢測。這樣既能實時化,也不會對服務端造成壓力。實現方式:change
+blur
事件。失焦檢測
當光標從輸入框離開時,通過ajax請求服務端檢測。服務端壓力小,缺點是不能實時檢測。實現方式:blur
事件。
以上兩種方式,只是對于一般用戶的提示。
安全性永遠不會通過客戶端來保證,交互開發有一條準則是一定要遵守的:永遠不要信任用戶的輸入。
不論是什么樣的輸入,最后提交到服務端,都要由服務端完成校驗。

TA貢獻1821條經驗 獲得超5個贊
不知道你說的安全性指的是什么,是指通過前端校驗用戶的輸入來保證站點安全的能力嗎?
對于服務器端來說,正確的做法是所有前端傳入的參數都不應該被信任?;蛘哒f,前端對用戶輸入的校驗做的再嚴格再合理,傳入到服務器端時,服務器端都要對傳入的數據重新進行校驗?;蛘吣憧梢岳斫獬?,前端校驗的目的不是為站點安全保駕護航的,其主要目的是為用戶服務為了提高用戶體驗的。
keyup
、change
、blur
等在實際開發過程中都有使用的,具體選用哪個事件進行監聽是根據你具體的校驗目的決定的。keyup
相較于change
、blur
更具有實時性,可以快速針對用戶的輸入進行校驗或判斷。如在注冊表單中,設置登錄密碼,可以通過監聽該事件快速實現對密碼強度的判斷并展示給用戶,提醒用戶增加密碼強度。但是實時性可能并不是最好的,還拿注冊表單舉例子。在校驗用戶賬戶名是否存在時,如果監聽keyup
,用戶剛按下按鍵就進行判斷,則前端頁面會在用戶輸入過程中向服務器發送大量的請求,這會對服務器端造成較大的不必要的壓力、同時也會消耗大量的客戶端的資源、甚至造成表單校驗的不可控。這時監聽change
或blur
事件就顯得更為合理。
添加回答
舉報