当一些文本粘贴到文本框中时(没有设置超时),是否检查数字

checking number or not when some text is pasted in a textbox (without set time out)

本文关键字:文本 超时 设置 是否 数字 检查      更新时间:2023-12-03

我有一个类似的输入字段

<input type ="number"   id="numberTxt" placeholder="Number Only"/>

我正在检查该值是否为数字,并使用keypress事件作为以下函数进行清除

    <script>
       $(document).ready(function(numberTxt){
          $('#numberTxt').keypress(function(event) {  
              var charCode = (event.which) ? event.which : event.keyCode;
              if (charCode != 45 && (charCode != 46 || $(this).val().indexOf('.') != -1) && (charCode < 48 || charCode > 57))
              {
                   return false; 
              }
              else 
                   return true;
          }); 
       });
    </script>

但是当我们复制粘贴一些文本(CTRL V CNTRL C)时,上面的代码是不工作

或者我在下面尝试了这个功能但没有得到该点的输入值其"(空字符串)。当我们复制粘贴它时,它正确地触发了这个功能。

<script>
           $(document).ready(function(){
              $('#numberTxt').on("paste",function('numberTxt') {  
                 var val = $('#numberTxt').val() ;  
              }); 
           });
</script>

是用event获取输入标签值的其他方法吗,如果我在之前通过类似按键功能的事件

复制粘贴过程中对检查编号的任何其他建议或答案也将有助于

使用.bind('input'..... 可能会觉得以下函数正确

http://jsfiddle.net/pxfunc/KDLjf/这是的

是否可以在不使用setTimeout()函数的情况下获得粘贴的文本?

这就是在PASTE上仅验证整数值的方法

$('#numberTxt').on("paste",function(e) {  
    var $this = $(this);
    setTimeout(function(){
        var val = $this.val(), 
            regex = /^['d]+$/;
        if( regex.test(val) ){
            $this.val( val );
        }
        else{
            $this.val('');
        }
      alert(val);    
    },0);
});

演示:http://jsfiddle.net/jogesh_pi/LaN8f/1/