2010-11-06 63 views
0

后,我知道如何验证字段的数值,但你怎么能验证的字段,如果无效字符已经被粘贴到该领域。通常我们有一个数字字段,然后是一个动作按钮,并且当单击动作按钮时,数字字段可能不会触发模糊事件。如何在这种情况下强制(重新)验证?您是否在动作按钮的点击事件中再次执行此操作,或者在那里有更优雅的解决方案?jQuery验证数字粘贴

回答

2

我用这种验证....检查粘贴文本,如果它包含字母,则显示用户错误,然后在用户检查文本并进行相应更改后延迟清除框。

$('#txtbox').on('paste', function (e) { 
    var $this = $(this); 
    setTimeout(function (e) { 
     if (($this.val()).match(/[^0-9]/g)) 
     { 
      $("#errormsg").html("Only Numerical Characters allowed").show().delay(2500).fadeOut("slow");      
      setTimeout(function (e) { 
       $this.val(null); 
      },2500); 
     }     
    }, 5); 
}); 
+0

Darin的答案是一个最佳实践,但我会接受你的答案,因为它特别适用于粘贴问题。只用了6年以上才得到答案LOL – 2017-03-09 19:20:38

+0

对不起,我最近在我的一个应用程序中使用了这个东西...认为它可以帮助其他人.... – 2017-03-09 22:18:31

3

没有真正回答你关于粘贴,但提供了一个替代的问题:你可以认购submit处理形式,并有执行验证。更优雅是使用jquery validation plugin将做认购你的工作,所以你只需要定义的规则和错误消息:

$(function() { 
    $('#myform').validate({ 
     rules: { 
      someFieldName: { 
       required: true, 
       number: true 
      } 
     }, 
     messages: { 
      someFieldName: { 
       required: 'please enter a value', 
       number: 'please enter a valid number' 
      } 
     } 
    }); 
});