現在越來越多的賬戶名使用手機號來登錄,為了減少前后端的交互,需要用戶在輸入時就要進行格式的判斷,
目前的常規辦法是,在輸入完成后進行判斷。
下面的方法是在輸入時就規定只能輸入數字,其他格式的字符是無法輸入進去的:
<input onkeydown="onlyNum();" style="ime-mode:Disabled" maxlength="11"> //ime-mode:Disabled:作用是完全禁用IME。對於有焦點的控件(如輸入框),用戶不可以激活IME; //ime-mode的其他屬性值及作用如下: //auto : 默認值。不影響IME的狀態。與不指定 ime-mode 屬性時相同 //active : 指定所有使用IME輸入的字符。即激活本地語言輸入法。用戶仍可以撤銷激活IME //inactive : 指定所有不使用IME輸入的字符。即激活非本地語言。用戶仍可以撤銷激活IME //maxlength:該屬性規定該input框中,輸入內容的長度; <script language=javascript> function onlyNum(){ if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39)) if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105))) event.returnValue=false; //執行至該語句時,阻止輸入;可類比阻止冒泡原理或者禁止右鍵功能; } </script>
該方法還存在一些問題,無法阻止第三方輸入的任何字符,如果有其他更加完善的解決辦法,請留言,我也學習學習。