输入禁用复制和粘贴时的文本输入

时间:2014-12-10 16:23:28

标签: javascript jquery

以下功能运行良好,但它目前停止粘贴文本和数字。 有没有办法只停止输入中的文本?

var restrictInputToDigits = function(){
    $('.digits').keypress(function(key) {
        if(key.charCode < 48 || key.charCode > 57) return false;
    });
    $('.digits').bind('copy paste', function (e) {
         e.preventDefault();
    });
}

我想要粘贴数字。

2 个答案:

答案 0 :(得分:6)

首先获取文本字段的值。然后用空字符替换除数字之外的所有字符。这应该有帮助

&#13;
&#13;
$('.digits').on('change keyup',function(){
     var value = $(this).val().toString().replace(/[^0-9]/g, '');
     $(this).val(value);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<input type="text" class="digits">
&#13;
&#13;
&#13;

答案 1 :(得分:5)

&#13;
&#13;
$('.digits').on('change keyup paste', function(e){
  $this = $(this);
  $this.val($this.val().replace(/\D+/, ''));
  if(e.charCode < 48 || e.charCode > 57){ e.preventDefault(); return false; }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input class="digits" value="1234">
&#13;
&#13;
&#13;