我有具有示例代码的输入框jsfiddle链接 https://jsfiddle.net/4rsv960t/173/ 我想允许粘贴事件中只有数字而不是数字,然后自动清空文本框。
仅允许我的示例代码
$(".allownumericwithoutdecimal").on("keypress keyup blur",function (event) {
console.log('allownumericwithoutdecimal called');
$(this).val($(this).val().replace(/[^\d].+/, ""));
if ((event.which < 48 || event.which > 57)) {
event.preventDefault();
}
});
<input type="text" value="" class="allownumericwithoutdecimal"/>
答案 0 :(得分:3)
如果我对您的理解正确(不确定if its not a number then automatically empty the text box
是什么意思)
您不需要javascript。
如果您将输入类型更改为number
,则在粘贴时,非数字将被自动删除
<input type="number" value="" class="allownumericwithoutdecimal" /><br /> 123456asd456asd
<p>Copy the above and paste into input</p>
答案 1 :(得分:3)
简单
$(".allownumericwithoutdecimal").on("input", function(event) {
this.value = /^\d+$/.test(this.value) ? this.value : "";
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="" class="allownumericwithoutdecimal" />
或保留数字
$(".allownumericwithoutdecimal").on("input", function(event) {
this.value = this.value.replace(/\D/g, "");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="" class="allownumericwithoutdecimal" />