重複していると言う前に、価格を実際にフォーマットする方法を尋ねているわけではありません。しかし、どこが間違っているのか、または希望どおりに実装するには他に何をすべきかを尋ねます。
価格のフォーマットを行いました(実際にはどこかからコードをコピーして) http://jsfiddle.net/qwY24/
価格 1のように
しかし、今は入力フィールド自体(価格2 )の価格をフォーマットしたいのですが、6桁まではうまくいきますが、その後はめちゃくちゃになります。2つの問題が発生しました
- 6桁の後にフォーマットがめちゃくちゃ
- 戻るキーを押すと (番号を削除)、価格は6 桁のみの後で再フォーマットされません
コード
$(".price1").on("keyup",function(){
var price = $(this).val();
$(".formatted1").text(price.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
});
$(".price2").on("keyup",function(){
var price = $(this).val();
price = price.replace(",","");
$(".price2").val(price.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
$(".formatted2").text(price.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
});
<label>Price 1</label> <input type="text" class="price1" /><br /> <label><b>Price 1 Formatted:</b></label> <span class="formatted1"></span><br /><br /><br /> <label>Price 2</label> <input type="text" class="price2" /><br /> <label><b>Price 2 Formatted</b></label> <span class="formatted2" ></span><br /><br /><br />