2010-06-19 67 views
0

我使用了jQuery插件滑块(jqueryui.com/demos/slider/)加入千个分隔符输出从jQuery的滑块插件

我打电话跟以下JavaScript插件:

$(function(){ 
$("#slider-price").slider({ 
range: true, 
min: 0, 
max: 5000000, 
step: 100000, 
values: [0, 5000000], 
slide: function(event, ui) {  
$("#amount").val('£' + ui.values[0] + ' - £' + ui.values[1]); 
} 
}); 
}); 

和打印到与加价的页面:

<label for="amount">Price : </label> 
<input class="bar-price" type="text" id="amount" /> 
<div id="slider-price"></div> 

当然上面的JavaScript将打印像“£0 - £500万”到“量”的输入框。

我一直在寻找一种方法来扩展Javascript,以便使用千分隔符格式化数字(即“£0 - £5,000,000”)。我已经发现了几个Javascript函数可以做到这一点,但我似乎无法在jQuery功能块中调用它们。

例如,这个函数将是完美的http://www.mredkj.com/javascript/nfbasic.html,但我不能在将数字输入到输入框字符串之前引用它。

我确定必须有一个简单的解决方案。

回答

3

试试这个....

slide: function(event, ui) {  
$("#amount").val('£' + addCommas(ui.values[0]) + ' - £' + addCommas(ui.values[1])); 
} 



//..... 


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; 
} 
+0

好,我想我试过了,但是它确实不工作!谢谢 – Paul 2010-06-19 16:11:59

1
function commafy(val) { 
    return String(val).split("").reverse().join("") 
         .replace(/(.{3}\B)/g, "$1,") 
         .split("").reverse().join(""); 
} 

来源:http://twitter.com/ded/status/13621796430

用法:

commafy(5000000); // => 5,000,000