3

私は現在、0 ポンドから 2,000,000 ポンドまでの価格帯のレンジ スライダーを使用しています。現在、価格が通貨としてフォーマットされていないことを除けば、すべてが正しく機能しています (つまり、£500,000 の値は現在、コンマなしで £500000 として表示されています)。コードは次のとおりです。

jQuery

  /* SALES SLIDER */ 
  $( "#slider-range-price-sales" ).slider({
  range: true,
  min: 0,
  max: 2000000,
  step: 50000,
  values: [ 0, 2000000],
  slide: function( event, ui ) {
      $("#minPrice").val("£" + ui.values[0]).toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "£1");
      $("#maxPrice").val("£" + ui.values[1]);
  }
});

$("#minPrice").val("£" + $("#slider-range-price-sales").slider("values", 0));
$("#maxPrice").val("£" + $("#slider-range-price-sales").slider("values", 1));

HTML

<div id="slider-range-price-sales"></div>

<div class="priceContainer">

   <div class="left"><input type="text" id="minPrice" name="minPrice" style="border: 0; color: #3D80E9; background:#F2F2F2; font-weight: bold;" /></div>
   <div class="right"><input type="text" id="maxPrice" name="maxPrice" style="border: 0; color: #3D80E9; background:#F2F2F2; font-weight: bold;" /></div>

</div>

http://jsfiddle.net/isherwood/RwfFH/

JavaScript で最低価格を再フォーマットしてみました。replace to no avail.. ヘルプや提案をいただければ幸いです。

ありがとう、ジェイミー

4

2 に答える 2

4

あなたがやっていることを維持するには、いくつかの変更を加えるだけです。.val() 操作で値を設定する前に、値を変更する必要があることを指摘します。また、replace は元の文字列を変更しない新しい文字列を返します。これで、正規表現 $1 を少し調整するだけで、一致した値が置換で使用されます。

$("#minPrice").val("£" + ui.values[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"));
于 2013-09-24T22:11:50.483 に答える
3

この関数を使用して、必要に応じてコンマを追加できます

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

および jsFiddle : http://jsfiddle.net/RwfFH/1/

于 2013-09-24T21:47:39.260 に答える