wNumb格式化停止noUiSlider价格滑块工作

时间:2018-05-03 14:58:55

标签: url search ascii nouislider

我的网站上有一个价格滑块,价格范围显示为£0.0 - £5,000,000.0,尾随零。

我已更改数字格式代码:

    format: wNumb({
            decimals: 1
        })

为:

    format: wNumb({
            decimals: 0,
            thousand: ','
        })

现在这个价格显示为0英镑 - 5,000,000英镑,这就是我想要的。

现在的问题是,在进行搜索时,网址中的价格会显示逗号%2C的ascii编码,并且不会过滤搜索结果

    adv_filter_price_min=0&adv_filter_price_max=5%2C000%2C000

我如何才能获得它,以便在网址中不使用ascii编码?例如:

    adv_filter_price_min=0&adv_filter_price_max=5000000

非常感谢

取值

完整代码

var rangeslider = jQuery('.rangeslider');
var rangecontainer = rangeslider.parent('.rangeslidercontainer');
var txtlowprice = rangecontainer.children('.adv_filter_price_min');
var txthiprice = rangecontainer.children('.adv_filter_price_max');
var spnlowprice = rangecontainer.find('.text_price_min');
var spnhiprice = rangecontainer.find('.text_price_max');
var defminprice = Number(interfeis_var.search_minprice);
var defmaxprice = Number(interfeis_var.search_maxprice);
var hdnminprice = txtlowprice;
var hdnmaxprice = txthiprice;
var minprice = Number(hdnminprice.val());
var maxprice = Number(hdnmaxprice.val());

if(rangeslider.length){
    rangeslider.noUiSlider({
        start: [ minprice, maxprice ],
        step: 10000,
        range: {
            'min': defminprice,
            'max': defmaxprice
        },
        connect: true,
        // Set some default formatting options.
        // These options will be applied to any Link
        // that doesn't overwrite these values.
        format: wNumb({
            decimals: 0
        })
    });

    rangeslider.Link('lower').to(txtlowprice);
    rangeslider.Link('upper').to(txthiprice);
    rangeslider.Link('lower').to(spnlowprice, setFormat);
    rangeslider.Link('upper').to(spnhiprice, setFormat);

    }

1 个答案:

答案 0 :(得分:0)

您正在使用wNumb格式化传递给滑块的输入,因此当您尝试从滑块获取数据时,它会返回格式化的输入。

在您的情况下,当您使用thousand: ','对其进行格式化时,它会将数字设置为50000到50,000(请注意逗号)。因此,当您尝试从滑块返回时,它会返回50,000而不是50000。

因此,我建议您按照以下步骤取消格式化数据。

创建wnumb对象以将其传递给滑块

var thousand_format = wNumb({
            decimals: 0,
            thousand: ','
});

使用滑块取消格式后从滑块返回输入时,使用wnumb的方法使用千元格式对象进行格式化。

var unformat_input = thousand_format.from( '50,000' ); // it will return 50000

用于在url中设置的相同unformat_input。 wNumb导致滑块无法正常工作,因为wNumb需要数字(50000),并且在第一次使用后你必须传递字符串(50,000)。我希望通过取消格式化它应该解决问题。

Know more about wNumb here