簡體   English   中英

將輸入字段設置為僅接受jQuery數字

[英]Set an input field to accept only numbers with jQuery

我必須定義一個僅接受整數的輸入文本。

我嘗試使用正則表達式,但該值的小數部分仍然可見。

我使用了這個功能:

$(document).on("input","input", function(e) {
    this.value = this.value.replace(/[^\d\\-]/g,'');
})

這個怎么樣?

 $('input').on('input blur paste', function(){ $(this).val($(this).val().replace(/\\D/g, '')) }) 
 <input> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

簡單易用。 嘗試:編輯:也調用onblur事件以防止粘貼。

 function numOnly(selector){ selector.value = selector.value.replace(/[^0-9]/g,''); } 
 <input type="text" onkeyup="numOnly(this)" onblur="numOnly(this)"> 

您可以在keydown檢測是否為數字,並且可以在粘貼事件上檢查是否為數字並刪除所有非數字。 這個也刪除點。

原始來源: keydown檢測粘貼刪除

下面的代碼已從原始來源進行了修改。

請試試:

 $( "#input" ).on("paste", function() { setTimeout(function(){ if ($('#input').val() != $('#input').val().replace(/\\D/g,"")) { $('#input').val($('#input').val().replace(/\\D/g,"")); } },10) }); $('#firstrow').on('keydown', '#input', function(e){-1!==$.inArray(e.keyCode,[46,8,9,27,13])||/65|67|86|88/.test(e.keyCode)&&(!0===e.ctrlKey||!0===e.metaKey)||35<=e.keyCode&&40>=e.keyCode||(e.shiftKey||48>e.keyCode||57<e.keyCode)&&(96>e.keyCode||105<e.keyCode)&&e.preventDefault()}); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="firstrow"> <input id="input" type="text"> </div> 

Finally I solved the above issue with my requirement to type only number is

$(document).on("input", ".skilltxt", function(e) {
                this.value = this.value.replace(/[^\d]/g,'');
             });
             $(".skilltxt").on('paste',function(e) {

                    if(gBrowser=='IE') {
                        var clipboardData, pastedData;
                         clipboardData = e.clipboardData || window.clipboardData;
                          pastedData = clipboardData.getData('Text');

                    }
                    else if((gBrowser=='Firefox')|| (gBrowser=='Chrome')){ 
                          var pastedData = (e.originalEvent || e).clipboardData.getData('text/plain');
                            window.document.execCommand('insertText', false, pastedData)
                    }
                if(Math.floor(pastedData) == pastedData && $.isNumeric(pastedData)){
                   $(this).val($(this).val().replace(/[^\d]/g,''));
                  }
                  else{
                   return false;
                  }
             });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM