0

重複していると言う前に、価格を実際にフォーマットする方法を尋ねているわけではありません。しかし、どこが間違っているのか、または希望どおりに実装するには他に何をすべきかを尋ねます。

価格のフォーマットを行いました(実際にはどこかからコードをコピーして) http://jsfiddle.net/qwY24/

価格 1のように

しかし、今は入力フィールド自体(価格2 )の価格をフォーマットしたいのですが、6桁まではうまくいきますが、その後はめちゃくちゃになります。2つの問題が発生しました

  1. 6桁の後にフォーマットがめちゃくちゃ
  2. 戻るキーを押すと (番号を削除)、価格は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 />
4

1 に答える 1

0

price.replace(",","")コンマのすべてではなく、最初のインスタンスのみを置き換えます。に置き換えます

price = price.replace(/,/g,"");

(また、.toString()変数はすでに文字列なので、次の行の部分は不要です。)

デモ: http://jsfiddle.net/qwY24/3/

于 2013-03-22T09:08:36.650 に答える