输入类型号onchange触发迟到

时间:2018-05-09 11:26:41

标签: javascript html

我有一个简单的输入标记,其数字类型具有onchange属性:

<input type="number" onchange="someFunction()" />

我的问题是当用户点击输入框时调用someFunction。键入时为什么不调用someFunction? 此外,当用户单击输入类型箭头以更改输入值时,第一次单击会触发onchange事件并调用someFunction,但第二次和第三次以及其他点击不会调用该函数。
在用户输入(飞行中)或用户点击输入箭头时,我该怎么做才能拨打someFunction

4 个答案:

答案 0 :(得分:1)

您应该阅读其他一些javascript事件。您想要的事件是onkeyup。这里有一个简单的例子

function someFunction() {
  alert("Hi there!");
}
<input type="number" onkeyup="someFunction()"  oninput="someFunction()" />

阅读this

答案 1 :(得分:0)

您是否尝试过使用oninput事件?

<input type="number" oninput="someFunction()">

答案 2 :(得分:0)

在输入模糊后触发事件时

onchange

您正在寻找onkeypress

function someFunction(event){
    console.log(event.target.value)
}
<input type="number" onkeyup="someFunction(event)" />

但我宁愿建议添加事件监听器而不是添加内联处理程序。我的意思是

document.getElementById("d").addEventListener("keyup", someFunction);
function someFunction(event){
    console.log(event.target.value)
}
<input type="number" id="d" />

答案 3 :(得分:0)

您必须使用oninput事件当元素获得用户输入时,会发生oninput事件。当<input><textarea>元素的值发生更改时,会发生此事件。 此事件类似于onchange事件。不同之处在于oninput事件在元素值发生变化后立即发生,而onchange发生在元素失去焦点后,内容发生变化后。另一个区别是onchange事件也适用于<select>元素。

<input type="number" oninput="someFunction()">