歐巴教我學習JavaScript的第二天,作為一個腳本絕緣體的我,實現了第一個小插件。
首先分析思路:
1、實時監控輸入input框內的值,計算value的長度,當輸入到第四個數字后添加一個空格;
2、限制input框內只能輸入數字和空格,這個需要用正則表達式來實現比較簡單,然后限制輸入值得最大長度是多少;
3、實現以上功能后你就會發現刪除input框內值得時候出現一個問題,當你刪除第5個值時就會被檢測到value的長度為4時,自動添加一個空格,從而成為死循環。解決方法,判斷按鍵是否為Backspace鍵,如果是則不執行函數。
(里邊有運用到jquery,用的時候加載jQuery庫)
1 <input type="text" id="test" name="textfield" maxlength="23" /> 2 3 <script> 4 $("#test").keyup(function a (e) { 5 var obj = e; 6 if(obj.keyCode != 8){ //判斷是否為Backspace鍵,若不是執行函數; 7 var b = document.getElementById("test").value; //定義變量input value值; 8 var maxValue = 23; //限制輸入框的最大值; 9 b = b.replace(/[^\d\s]/g,""); //正則表達式:如果輸入框中輸入的不是數字或者空格,將不會顯示; 10 document.getElementById("test").value = b; //把新得到得value值賦值給輸入框;
11 for(n=1;n<=4;n++){ 12 if(b.length <=5*n-2||b.length>5*n-1){ //判斷是否是該加空格的時候,若不會,還是原來的值; 13 b = b; 14 }else{ 15 b = b +" "; //給value添加一個空格; 16 document.getElementById("test").value = b; //賦值給輸入框新的value值; 17 } 18 } 19 } 20 21 }); 22 </script>
