jQuery UI 滑块自定义步骤增量和加载时的逗号
jQuery UI Slider custom step increments and comma on load
我正在构建一个使用"对齐增量"JQuery UI 滑块的表单:https://jqueryui.com/slider/#steps
这是我目前拥有的代码:
<script>
$(function() {
$( "#slider" ).slider({
value:100,
min: 2501,
max: 50000,
step: 500,
slide: function( event, ui ) {
$( "#LoanAmount" ).val( '$' + addCommas(ui.value) );
}
});
$( "#LoanAmount" ).val( "$" + $( "#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>
我的第一个问题是代码仅在使用滑块后显示值的逗号,而不是在页面加载时显示。页面加载的最小值为 $2501 而不是 $2,501
我的第二个问题是,出于合规性原因,我需要最小金额为 2,501 美元而不是 2,500 美元,但我仍然希望步长增量显示在偶数 500 上。我需要它像这样:2,501 美元> 3,000 美元> 3,500 美元> 4,000 美元> 4,500 美元,直到它以 50,000 美元结束。
任何帮助将不胜感激。谢谢!
如果您只是操作幻灯片事件中的值,如下所示:
$(function() {
$( "#slider" ).slider({
value:100,
min: 2501,
max: 50001,
step: 500,
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;
}
});
有关示例,请参阅此jsfiddle:https://jsfiddle.net/bpursley/u1nLma3x/7/
首先,这里有一种在文本中添加逗号的简单方法,而不是 100% 确定它是否在所有浏览器上都受支持,因此请谨慎使用
textvalue = Number(nStr).toLocaleString('en',{minimumFractionDigits: 0 });
对于您的第一个问题,请执行此操作
$( "#LoanAmount" ).val( "$" + $( "#slider" ).slider( "value" ) );
应该是
$( "#LoanAmount" ).val( "$" + addCommas($( "#slider" ).slider( "value" )) );
至于第二个问题,一个简单的技巧是将起始值设置为 2501,然后在您的幻灯片功能中执行此操作
slide: function( event, ui ) {
var val = ui.value
if(val === 2500){
val = 2501
}
else{
val = val / 10
val = Math.round(val)
val = val * 10
}
$( "#LoanAmount" ).val( '$' + addCommas(val) );
}
我认为这会起作用,基本上您检查值是否为 2500,然后将其设置为 2501,但是您必须确保当您步退到偶数 500 时
编辑
修复了代码错误
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 如何在页面重新加载时显示jquery ui对话框
- 如何加载嵌套3个状态的UI路由器UI视图模板
- 依赖于缓慢加载javascript的UI
- ui路由器的惰性加载状态
- 访问url[材质Ui+选项卡]时,Angular Ui路由器未加载视图
- angularjs-ui路由器父状态,参数加载在子状态之后
- 保持外部视图不变,而只是在angular ui中重新加载内部视图
- 打开 UI5 sap-ui-core.js无法加载资源
- jQuery UI 滑块自定义步骤增量和加载时的逗号
- 为什么引导 UI 在加载时不显示正确的日期格式
- 创建 UI 加载程序时的引导程序
- jQuery UI不会加载到.button的$(“#content”).load页面上
- 在ui路由器中以Webpack块的形式懒惰地加载Angular指令
- 对于多个视图,当URL更改时,我的子模板不会在Angular UI中加载
- jQuery加载函数后,jQuery UI自动完成功能不起作用
- Kendo UI树视图中的延迟加载(带缓存)
- 如何通过不同的方式从控制器加载ui.bootstrap模块
- 正在加载ui路由器状态下的共享模型
- 加载UI日历