[英]How to make input field to accept only numbers
我有一個數字類型的輸入字段,因此它只能接受數字-我正在使用正則表達式來限制用戶輸入特殊字符-它在系統上工作正常,但在小型設備上,例如在我的手機中,鍵盤類型是唯一的數字,但是當我單擊時-它接受了我不想要的那個
我做了什么
$('#test').on('keypress', function(event) { var regex = new RegExp("^[0-9]+$"); var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); if (!regex.test(key)) { event.preventDefault(); return false; } });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css"> <input type="number" class="form-control" id="test">
像這樣在手機上顯示
-i已嘗試使用正則表達式來限制它,但無法在電話上使用
編輯我快要接近了,我正在嘗試下面的代碼,但是它正在減去-
第一次當我下次沒有按時,例如如果我輸入55然后我按-
它不是在接受,而是當我按-
在任何數字之前它正在
(function($) { $.fn.inputFilter = function(inputFilter) { return this.on("input keydown keyup mousedown mouseup select contextmenu drop", function() { if (inputFilter(this.value)) { this.oldValue = this.value; this.oldSelectionStart = this.selectionStart; this.oldSelectionEnd = this.selectionEnd; } else if (this.hasOwnProperty("oldValue")) { this.value = this.oldValue; this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd); } }); }; }(jQuery)); $("#uintTextBox").inputFilter(function(value) { return ^\\d + [.] ? \\d + $.test(value); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input id="uintTextBox" type="tel">
/* Function allows only numbers and decimal */
$(document).on('keypress','#test',function(eve) {
if (( eve.which != 45 ||eve.which != 46 || $(this).val().indexOf('.') != -1 )
&& ( eve.which < 48 || eve.which > 57 )
|| ( $(this).val().indexOf('.') == 0)
)
{
eve.preventDefault();
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.