我需要根据输入的数字值更改步骤,但是它不能正常工作。如果值为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>
答案 0 :(得分:1)
显然,问题出在min属性。由于您在20岁时拥有min =“ 1”,因此它首先在21上运行(因为min为1),然后从正确的步骤开始。 要解决此问题,只需同时更新min属性。
ResultBean
有了这个,你可以倒退
element.attr('step', adim);
element.attr('min', adim);