鼠标右键单击粘贴在所有浏览器中仅允许数字

时间:2018-07-10 12:14:18

标签: jquery

我有具有示例代码的输入框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"/>

2 个答案:

答案 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" />