2010-10-15 306 views

回答

51

change将是该字段值更改时触发的事件。

我认为HTML5事件input也会触发。

+20

只有当'up'和'down'箭头被点击时才会触发'oninput'。 – 2010-10-15 07:36:17

+2

但onchange只在火焰模糊,至少在Firefox。我想我们将不得不寻找重点新闻。 – andho 2010-10-15 07:45:12

+0

onchange和oninput都在Opera中工作,但只有oninput可以在Chrome中工作(并且只有当我从事件处理程序返回false时,否则Chrome会反复触发oninput事件) – 2010-10-15 07:51:35

3

onchange事件发生模糊,但oninput事件在您键入时触发。也许您可能希望在oninput事件中添加计时器,并在用户停止输入一秒钟时触发您的onchange事件?

5

我发现onkeyuponchange涵盖了Chrome 19中的所有内容。 这可处理直接值输入,向上箭头按键,单击按钮和滚动鼠标滚轮。

onchange仅在Chrome中就足够了,但其他浏览器只会将该字段呈现为文本框,这需要绑定onkeyup,该功能完全可以读取新值。

单独绑定mousewheel事件不太成功。事件发生得太早 - 在字段值更新之前 - 因此总是给出该字段的先前值

+0

对于Firefox也是如此。 – 2018-02-18 20:47:47

28

我发现对于jQuery,下面的代码覆盖了Chrome中的键盘输入,鼠标滚轮更改和按钮点击,还处理了键盘输入在Firefox

$("input[type=number]").bind('keyup input', function(){ 
    // handle event 
}); 
+1

添加'变化',也是完美的。您仍然希望听取外部更改,无论如何,添加它并没有什么坏处。 – 2016-09-16 11:17:04

+0

如果你想在输入区域内选择滚动事件,也可以使用'mousewheel'。 – 2016-09-16 11:17:39

+1

请注意,'.bind()'现在不赞成使用'.on()' – 2017-05-10 18:31:51