我的网站上有一个价格滑块,价格范围显示为£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);
}
答案 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)。我希望通过取消格式化它应该解决问题。