首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >输入号码“type=”的onchange事件

输入号码“type=”的onchange事件
EN

Stack Overflow用户
提问于 2012-03-08 05:58:02
回答 9查看 203K关注 0票数 90

如何处理<input type="number" id="n" value="5" step=".5" />的onchange?我不能执行keyupkeydown,因为用户可能只使用箭头来更改值。我希望在它发生变化时处理它,而不仅仅是在模糊上,我认为.change()事件就是这样。有什么想法吗?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-03-08 06:07:27

使用mouseup和keyup

代码语言:javascript
复制
$(":input").bind('keyup mouseup', function () {
    alert("changed");            
});

http://jsfiddle.net/XezmB/2/

票数 147
EN

Stack Overflow用户

发布于 2012-03-08 06:12:17

oninput事件(.bind('input', fn))涵盖从击键到箭头单击和键盘/鼠标粘贴的所有更改,但在IE <9中不受支持。

代码语言:javascript
复制
jQuery(function($) {
  $('#mirror').text($('#alice').val());

  $('#alice').on('input', function() {
    $('#mirror').text($('#alice').val());
  });
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input id="alice" type="number" step="any" value="99">

<p id="mirror"></p>

票数 85
EN

Stack Overflow用户

发布于 2012-03-08 06:01:32

http://jsfiddle.net/XezmB/8/

代码语言:javascript
复制
$(":input").bind('keyup change click', function (e) {
    if (! $(this).data("previousValue") || 
           $(this).data("previousValue") != $(this).val()
       )
   {
        console.log("changed");           
        $(this).data("previousValue", $(this).val());
   }

});


$(":input").each(function () {
    $(this).data("previousValue", $(this).val());
});​

这有点困难,但是通过这种方式,您可以使用"click“事件来捕获当您使用鼠标通过输入上的小箭头递增/递减时运行的事件。您可以看到我是如何构建一个小小的手动“更改检查”例程的,该例程确保您的逻辑不会触发,除非值实际发生了更改(以防止字段上的简单单击导致的误报)。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9609731

复制
相关文章

相似问题

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