[英]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
检测是否为数字,并且可以在粘贴事件上检查是否为数字并删除所有非数字。 这个也删除点。
下面的代码已从原始来源进行了修改。
请试试:
$( "#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.