[JQuery] keypress/keyup/keydown,限制輸入數字及長度 - Slash Engineer 要多斜有多斜

Breaking

Slash Engineer 要多斜有多斜

程式設計的學習過程 (環境設置、開發環境、程式設計、語法練習、資料結構等等...) 99'暑假:六月初開始. 社會新鮮人:十一月初開始.

2017年11月9日 星期四

[JQuery] keypress/keyup/keydown,限制輸入數字及長度

<div class="col-md-3 col-xs-3">
Year code:
<input type="text" id="txt_01_year" style="width100%max-width150px" class="form-control inputRes" />
</div>


<script>
    //限制使用者輸入年碼為數字,且只能長度1   @20171109   #SW
    $(function () {
        $('#txt_01_year').keypress(function () {
            if ($('#txt_01_year').val != null) {
                $('#txt_01_year').val('');
            }
        });
 
        $('#txt_01_year').keyup(function () {
            //alert("QQ");
            $(this).val($(this).val().replace(/[^\d]/g"").substr(01));
        });
 
    });
    //    
</script>

在keyup的步驟:
使用者在輸入的當下,若輸入非數字,則取代成""(也就是不給輸入)。
若輸入為數字,但僅接受長度為1,所以要substr(0,1),僅保留長度1。

在keypress的步驟:
若使用者已有輸入數字,則將其取代為空,再接收新的值。

你可以試著把keypress的步驟先停用,就知道為什麼要加上keypress那段了。


關於keyup / keypress / keydown,請參考w3C,有明確定義。




Ref : 
https://www.w3schools.com/jquery/event_keypress.asp

沒有留言:

張貼留言

問題沒有大小或好壞