首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许在'input‘上浮动,而不仅仅是在'keypress’事件上

允许在'input‘上浮动,而不仅仅是在'keypress’事件上
EN

Stack Overflow用户
提问于 2017-05-11 23:53:20
回答 1查看 89关注 0票数 0

我有这个代码来接受有效的intfloat数字。

代码语言:javascript
复制
$("input").on("keypress", function(event) {
       $(this).val($(this).val().replace(/[^0-9\.]/g, ''));
       if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
         event.preventDefault();
       }
});

但是,我无法通过copy-pasterightclick-paste事件捕获用户输入数据。

我尝试过$("input").on("input",...,但不起作用。请看下面的小提琴演示。

Fiddle Demo

EN

回答 1

Stack Overflow用户

发布于 2017-05-12 00:15:11

您可以监听paste事件并选中numeric after 0 0ms setTimeout,以便将值粘贴进去。你会看到任何粘贴进去的东西的闪光,所以这不是一个理想的解决方案,但可能是可行的。

代码语言:javascript
复制
$("input").on("keypress", function(event) {  
  $(this).val($(this).val().replace(/[^0-9\.]/g, ''));   
  if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
    event.preventDefault();
  }
});


$("input").on("paste", function(event) {
  var element = $(this);
   setTimeout(function(){
     element.val(element.val().replace(/[^0-9\.]/g, ''));
   }, 0);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43920323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档