2016-12-23 6 views
0

だから私は数字がvar test_price = 94600です。ユーザーが<input name="quantity" />要素に入力した値を乗算し、その結果を<p id="sample">要素に表示したいとします。これは自己記述的です:<p>要素には、合計価格(price * quantity)が表示されます。私はそれをすることができた:期間を桁区切り文字として使用

$('input[name="quantity"]').change(function() { 
    var test_price = 94600; 
    var quantity = $('input[name="quantity"]').val(); 
    var price_without_thousands_separator = $('#sample').html(test_price * quantity); 
}); 

As you can see it's working

これで、3つの単位の後にピリオド(。)を追加して、#sample段落に追加したいだけです。したがって、数量が1の場合は94.600、数量が3の場合は283.800、数量が8の場合は756.800などと表示されます。はい、普通の伝統はカンマを使用することですが、ここでは私の国では小数点として桁区切りをカンマで区切ります(、たとえば、π= 3.14、 3,14)。

ハッピーホリデー!!

+0

上記は、すべての点で重複していますあなたがしなければならないのは、それが与えるコードで ''、 ''を '' '' ''に切り替えることだけです。 – 4castle

+0

どのようにしてコードを挿入することができますか( 'function numberWithCommas(x){return x.toString()。replace// \ B(?=(\ d {3})+(?!\ d))/ ");}')を私のものに入れますか?私はうんざりしていません – alej27

+1

この関数を追加し、html var price_without_thousands_separator = $( '#sample')を設定するときに呼び出す必要があります.html(numberWithCommas(test_price * quantity)); – bormat

答えて

0

ここでは、最大6桁の非常に簡単な解決策です。あなたが最後からあなたの文字列を通って、すべての3桁目でループformatInt()関数を作成したい場合があり、これはより堅牢にする

var x = test_price * quantity; 
x = x.toString(); 
var withComma = x.slice(0, x.length - 3) + ',' + x.slice(-3); 

カンマを追加します

+0

その 'formatInt()'はどうすれば使えますか? [あなたは解決策を見つけました](http://jsfiddle.net/0wg7y6x9/3)、入力値が11以上になると、その数値は1.400.600ではなく1040.600と表示されます。 – alej27

+1

私はこの正規表現の解決策に行きます。 http://stackoverflow.com/a/2901298/3465999 はので、あなたの場合には、その機能を追加し、 numberWithCommas(test_price *数量)を呼び出します。また、 '、'を '。'に置き換えてください。 –

関連する問題