Javascript 使用自定义步长增量时jQuery UI滑块的默认值问题

Javascript 使用自定义步长增量时jQuery UI滑块的默认值问题,javascript,jquery,jquery-ui,jquery-ui-slider,Javascript,Jquery,Jquery Ui,Jquery Ui Slider,我正在使用“捕捉到增量”JQuery UI滑块构建表单: 我使用下面的代码,这样滑块的自定义最小值为2501,但仍然在偶数500上递增(不添加额外的1),直到它达到最大值50000。因此,步长增量如下:2501>3000>3500>4000等,直到达到50000 <script> $(function() { $("#slider").slider({ value: 10000, min: 2501, max: 50001, step: 500,

我正在使用“捕捉到增量”JQuery UI滑块构建表单:

我使用下面的代码,这样滑块的自定义最小值为2501,但仍然在偶数500上递增(不添加额外的1),直到它达到最大值50000。因此,步长增量如下:2501>3000>3500>4000等,直到达到50000

<script>
$(function() {
  $("#slider").slider({
    value: 10000,
    min: 2501,
    max: 50001,
    step: 500,
    range: "min",
    slide: function(event, ui) {
      var x = Number(ui.value);
      if (x > 2501) {
        x = x - (x % 500);
      }
      $("#LoanAmount").val('$' + addCommas(x));
    }
  });
  $("#LoanAmount").val('$' + addCommas($("#slider").slider("value")));

  function addCommas(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
      x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
  }
});
</script>

$(函数(){
$(“#滑块”).滑块({
价值:10000,
最低:2501,
最高:50001,
步骤:500,
射程:“分钟”,
幻灯片:功能(事件、用户界面){
var x=数量(用户界面值);
如果(x>2501){
x=x-(x%500);
}
$(“#LoanAmount”).val(“$”+addCommas(x));
}
});
$(“#LoanAmount”).val(“$”+addCommas($(“#slider”).slider(“value”));
函数addCommas(nStr){
nStr+='';
x=nStr.split('.');
x1=x[0];
x2=x.长度>1?'.+x[1]:'';
var rgx=/(\d+)(\d{3})/;
while(rgx.测试(x1)){
x1=x1.替换(rgx,'$1'+','+'$2');
}
返回x1+x2;
}
});
我需要设置该值:10000,以便滑块加载该特定步骤,但问题是它在页面上打印为10001,而不是10000

关于如何解决这个问题有什么建议吗


谢谢

一个可能的解决方案是更正addCommas函数:

$(函数(){
$(“#滑块”).滑块({
价值:10000,
最低:2501,
最高:50500,
步骤:500,
射程:“分钟”,
幻灯片:功能(事件、用户界面){
var x=数量(用户界面值);
如果(x>2501){
x=x-(x%500);
}
$(“#金额”).val(“$”+addCommas(x));
}
});
$(“#amount”).val(“$”+addCommas($(“#slider”).slider(“value”));
函数addCommas(nStr){
var x=数量(nStr);
如果(x>2501){
x=x-(x%500);
}
nStr=x.toString();
x=nStr.split('.');
x1=x[0];
x2=x.长度>1?'.+x[1]:'';
var rgx=/(\d+)(\d{3})/;
while(rgx.测试(x1)){
x1=x1.替换(rgx,'$1'+','+'$2');
}
返回x1+x2;
}
});


金额(增加50美元):


Hey@gaemaf谢谢你的帮助。问题在于,出于合规性原因,必须将最小值设置为2501。您的代码将该值更改回2500。谢谢您,先生。工作起来很有魅力。一旦我的声望达到15,你的选票就会出现。再次感谢你的帮助。