我想知道是否可以覆盖浏览器步骤行为或在步骤之前拦截和更改步骤值,或者防止步进作为输入类型编号的函数发生.
例如,当使用向上和向下递增/递减箭头/滚动步进等递增时,我想在它发生之前操纵步进过程.
例如:
<input type="number" min="1.01" max="1000" id="num"/>
Run Code Online (Sandbox Code Playgroud)
我试着不给步骤属性.这没用.
Step属性只接受值'all'和数字,不带false.
所以我无法使用任何属性禁用它.我也尝试过使用stepUp,stepDown函数但是当浏览器步骤函数发生时不会调用它.
我基本上想要它不要完全步进或者如果它执行步骤,然后执行自定义步骤功能,其中我根据其当前值确定步长值.
我尝试修改更改,但这似乎不适用于当前步骤,仅适用于下一步.
这是javascript:
$("#num").on("keyup change focusin focusout", function (e) {
$(this).attr("step", getStep($(this).val()));
});
function getStep (val) {
val = parseFloat(val);
var step = 1;
if (val < 5) {
console.log('here');
step = 2;
} else if (val < 10) {
step = 5;
}
return step;
}
Run Code Online (Sandbox Code Playgroud)
如果我输入5,它应该增加5,但它增加1.下一次增加5.我想在步进之前覆盖步长值,如果可能的话.
我不是试图通过使用文本输入来解决这个问题,我试图确定是否有一种方法来覆盖步进功能.