我怎样才能为a创建step属性
<input type="number">
更多地是指导,因此我可以输入任何正整数,但增量箭头会将当前值更改为固定数量。
e.g。我可以输入0,1,2,3,4,5,6,7,...... 并且该步骤将值增加为0,6,12,18,24,...等...
如果我知道如何捕获javascript中的升压/降压事件,我可以实现这一点。但是,我找不到办法做到这一点。我已经在下面的伪代码中准确显示了我想要的内容:
<input id="num" type="number">
<script>
inp = document.getElementById("num");
var increment = 6;
if ( step up pressed ){
inp.value += increment;
}
else if (step down pressed ){
inp.value -= increment;
}
</script>
答案 0 :(得分:1)
这会有用吗?
<input id="num" type="number" step="6">
答案 1 :(得分:1)
这似乎是一个可怕的黑客,但这是我的问题的答案:
<input id='num' type=number step=0.00001 onchange="increment()">
<script>
document.prev_num = document.getElementById("num").value;
function increment() {
var step = 6;
var catch_step = 0.00001;
var curr_num = parseFloat(document.getElementById("num").value);
if ( Math.abs(curr_num - (document.prev_num + catch_step)) < 1e-7 ){
curr_num = curr_num - catch_step + step;
}
else if (Math.abs(curr_num - (document.prev_num - catch_step)) < 1e-7){
curr_num = curr_num + catch_step - step;
}
else if (curr_num != parseInt(curr_num)){
alert("You can only input integers.")
curr_num = parseInt(curr_num);
}
document.getElementById("num").value = curr_num;
document.prev_num = curr_num;
}
</script>
因此HTML强制数字为0.00001的倍数,包括所有整数。
当数字发生变化时,Javascript会动作。如果该更改仅为0.000001的更改,则几乎肯定会按下步骤按钮。
不接受非整数。