noUiSlider - 仅限格式化第一个滑块

时间:2014-10-03 12:07:33

标签: javascript plugins formatting nouislider

使用noUiSLider的wNumb.js插件,我试图将多个滑块上的输入格式化为美元。基本格式对象适用于第一个输入,但第二个输入和所有其他具有滑块的输入显示为空。此外,浏览器不会抛出任何JavaScript错误。

指向wNumb文档的链接:http://refreshless.com/wnumb/ 链接到noUiSlider文档:http://refreshless.com/nouislider/

这是基本的noUiSlider代码:

var slider_sales_vol = $('.range-slider-sales-vol'),
    slider_sales_vol_mas = $('.range-slider-sales-vol-mas'),
    AnnualVisaSales = $('#AnnualVisaSales'), guard = false,
    AnnualMasterCardSales = $('#AnnualMasterCardSales'), guard = false;

function setSalesValue(value){
    if ( guard ) return;
    $(this).val(value);
}

AnnualVisaSales.change(function(){
    var value = $(this).val();
    guard = true;
    slider_sales_vol.val(value);
    guard = false;
});

AnnualMasterCardSales.change(function(){
    var value = $(this).val();
    guard = true;
    slider_sales_vol_mas.val(value);
    guard = false;
});

var range_all_sliders = {
    'min': [ 1000, 1000 ],
    '33%': [ 100000,  50000 ],
    '66%': [ 500000, 100000 ],
    'max': [ 1000000 ]
};

$('.range-slider-sales-vol').noUiSlider({
    start: [ 1000 ],
    range: range_all_sliders,
    format: wNumb({
        decimals: 0,
        thousand: ',',
        prefix: '$ '
    })      
});

$('.range-slider-sales-vol-mas').noUiSlider({
    start: [ 1000 ],
    range: range_all_sliders,
    format: wNumb({
        decimals: 0,
        thousand: ',',
        prefix: '$ '
    })     
});

$('.range-slider-sales-vol').Link("lower").to(AnnualVisaSales, setSalesValue);
$('.range-slider-sales-vol-mas').Link("lower").to(AnnualMasterCardSales, setSalesValue);

1 个答案:

答案 0 :(得分:0)

问题很简单。我的第一个输入是' type = text'。因此,它可以很容易地使用字符串数据格式化,例如' $','。'等...以下所有输入' type =数'这导致noUislider格式无效。