假设我有一个input元素,在我的html代码中,类型为number和两个按钮:
function downFunction(id) {
let inputField = document.getElementById(id);
// How to increment the value?
log("Log from downFunction", inputField)
}
function upFunction(id) {
let inputField = document.getElementById(id);
// How to decrement the value?
log("Log from upFunction", inputField)
}
function log(message, element) {
console.log(message);
console.log(element);
console.log("\n");
}
<input type="number" id="inputFieldId" min="1" max="10" value="10">
<input type="button" id="downButton" onclick="downFunction('inputFieldId')" value="-"/>
<input type="button" id="upButton" onclick="upFunction('inputFieldId')" value="+" />
是否可以使用JavaScript或jQuery分别通过单击upButton
和downButton
来递增/递减inputFieldId
的值?
我并不是说在执行++
或--
操作后获取字段的当前值并重新设置新值。
我的意思是直接点击箭头按钮。
为了更好地理解,做一些类似于这样的事情:
let inputField = document.getElementById(id);
inputField[0].arrowUp.click();
inputField[0].arrowDown.click();
4条答案
按热度按时间ogsagwnx1#
您可以在
input[type=number]
HTMLElement上使用stepUp
和stepDown
方法stepUp DocumentationstepDown Documentation
2mbi3lxu2#
您将无法以编程方式单击
input type="number"
的箭头,但您不必这样做,因为这不是您实际想要做的。您要做的是与用户单击这些箭头时发生的操作相同的操作。所以,你可以自己启动代码。在这种情况下,只需调整元素的value
。stszievb3#
获取向上/向下按钮坐标。
点击这些坐标。
o0lyfsai4#
虽然可以使用
inputElement.stepUp()
更改值,但这本身不会在元素上触发input
事件。因此,如果您的代码具有
inputElement.addEventListener('input', () => { // do stuff})
,则不会触发它。但是,在代码中的
.stepUp()
之后,可以添加然后
input
事件将在元素上触发,就像用户输入了它一样。引用:ChatGPT-4教我的!