Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使步骤在<;输入类型=";“数字”&燃气轮机;_Javascript_Html_Html5 Input Number - Fatal编程技术网

Javascript 使步骤在<;输入类型=";“数字”&燃气轮机;

Javascript 使步骤在<;输入类型=";“数字”&燃气轮机;,javascript,html,html5-input-number,Javascript,Html,Html5 Input Number,如何为一个对象创建步骤属性 更像是一个指南,因此我可以输入任何正整数,但增量箭头会将当前值更改为固定值 e、 我可以输入0,1,2,3,4,5,6,7,。。。 这一步将增加值为0,6,12,18,24,。。。等等 如果我知道如何在javascript中捕获升压/降压事件,我就可以实现这一点。然而,我找不到一个方法来做到这一点。我已经在下面的伪代码中显示了我想要的内容: <input id="num" type="number"> <script> inp = docu

如何为一个对象创建步骤属性
更像是一个指南,因此我可以输入任何正整数,但增量箭头会将当前值更改为固定值

e、 我可以输入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>

inp=document.getElementById(“num”);
var增量=6;
如果(踩下踏板){
inp.value+=增量;
}
否则,如果(踩下踏板){
inp.value-=增量;
}
这样行吗

<input id="num" type="number" step="6">

这样行吗

<input id="num" type="number" step="6">

这似乎是一次可怕的黑客攻击,但以下是我问题的答案:

<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>

document.prev_num=document.getElementById(“num”).value;
函数增量(){
var阶跃=6;
var-catch_阶跃=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)){
警报(“您只能输入整数。”)
curr_num=parseInt(curr_num);
}
document.getElementById(“num”).value=curr\u num;
document.prev_num=curr_num;
}
因此HTML强制数字为0.00001的倍数,其中包括所有整数

然后,当数字发生变化时,Javascript会起作用。如果该变化仅为0.000001的变化,则几乎可以肯定按下了步进按钮


非整数将不被接受。

这似乎是一个可怕的黑客行为,但以下是我问题的答案:

<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>

document.prev_num=document.getElementById(“num”).value;
函数增量(){
var阶跃=6;
var-catch_阶跃=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)){
警报(“您只能输入整数。”)
curr_num=parseInt(curr_num);
}
document.getElementById(“num”).value=curr\u num;
document.prev_num=curr_num;
}
因此HTML强制数字为0.00001的倍数,其中包括所有整数

然后,当数字发生变化时,Javascript会起作用。如果该变化仅为0.000001的变化,则几乎可以肯定按下了步进按钮


不接受非整数。

否,因为步骤锁定了可输入为步骤倍数的数字集,即如果步骤为6,则仅0,6,12,18,24,30,。。。可以输入。但是,我希望能够输入所有数字(同时将值增加大于1的值)。否,因为步骤锁定了可输入为步骤倍数的数字集,即如果步骤为6,则仅0,6,12,18,24,30,。。。可以输入。然而,我希望能够输入所有的数字(同时将值增加大于1的值)。这里有人建议只使用(更改)事件,存储最后一个值,并将其与新值进行比较,以确定更改方向,然后相应地增加。啊,好的,我只是假设会有一个内置的方法用于此。我也会这样假设。这有点令人惊讶,竟然没有。“step”功能目前的方式似乎有点缺陷。我已经根据您发布的问题添加了一个答案。我想可以,但它看起来确实有点像黑客!我认为step不会触发特定事件。这里有人建议只使用(更改)事件,存储最后一个值,并将其与新值进行比较,以确定更改方向,然后相应地增加。啊,好的,我只是假设会有一个内置的方法用于此。我也会这样假设。这有点令人惊讶,竟然没有。“step”功能目前的方式似乎有点缺陷。我已经根据您发布的问题添加了一个答案。我想可以,但它看起来确实有点像黑客!