如何设置自定义步骤输入值?

时间:2018-10-13 18:22:04

标签: javascript html5 input

我需要根据输入的数字值更改步骤,但是它不能正常工作。如果值为20,步长为2,但给出的是21、23、25 ...而不是22、24、26 ...为什么?我该怎么解决?

$(function() {
  $('#points').on('input change', function() {
    var element = $('#points'),
      deger = element.val(),
      adim;
    // Set rules here
    if (deger < 20) {
      adim = 1;
    } else if (deger >= 20 && deger < 50) {
      adim = 2;
    } else if (deger >= 50 && deger < 100) {
      adim = 5;
    } else if (deger >= 100 && deger < 200) {
      adim = 10;
    } else {
      adim = 50;
    }
    element.attr('step', adim);
    $('#deger').text(deger);
    $('#adim').text(adim);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!doctype html>
<html>

<div>
  Value: <span id="deger"></span>
</div>
<div>
  Current step: <span id="adim"></span>
</div>
<div>
  <input id="points" type="number" step="4" value="12" min="1" max="10000" />
</div>

1 个答案:

答案 0 :(得分:1)

显然,问题出在min属性。由于您在20岁时拥有min =“ 1”,因此它首先在21上运行(因为min为1),然后从正确的步骤开始。 要解决此问题,只需同时更新min属性。

ResultBean

有了这个,你可以倒退

element.attr('step', adim);
element.attr('min', adim);