我有一个简单的输入标记,其数字类型具有onchange
属性:
<input type="number" onchange="someFunction()" />
我的问题是当用户点击输入框时调用someFunction
。键入时为什么不调用someFunction
?
此外,当用户单击输入类型箭头以更改输入值时,第一次单击会触发onchange
事件并调用someFunction
,但第二次和第三次以及其他点击不会调用该函数。
在用户输入(飞行中)或用户点击输入箭头时,我该怎么做才能拨打someFunction
?
答案 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()">