Отправьте начальное значение при использовании форматирования чисел Javascript

Я использую форматирование чисел (wNumb) для текстового поля. Он обновляется с помощью ползунка диапазона (noUislider), и это прекрасно работает.

Проблема, с которой я сталкиваюсь, заключается в том, что при отправке формысохраненное значение делится на 1000 (возможно, из-за разделителя тысяч).

Как можно избавиться от форматирования wNumb при отправке?

...
<%= f.text_field :salary, id: "how-much" %>

 <div id="slider-format"></div>

  <div class="field">
    <%= f.label :comment %><br>
    <%= f.text_area :comment %>
  </div>
  <div class="actions">
   <%= f.submit %>
 </div>

Тогда скрипт ниже:

<script>
var sliderFormat = document.getElementById('slider-format');

noUiSlider.create(sliderFormat, {
    start: [ 200000 ],
    step: 1000,
  connect: 'upper',
    range: {
        'min': [ 10000 ],
        'max': [ 250000 ],
    },
  format: wNumb({
        decimals: 0,
        thousand: '.',
        postfix: ' (US $)',
    })
});

var inputValue = document.getElementById('how-much');

sliderFormat.noUiSlider.on('update', function( values, handle ) {
    inputValue.value = values[handle];
});

inputValue.addEventListener('change', function(){
    sliderFormat.noUiSlider.set(this.value);
});
</script>

Инструкции на http://refreshless.com/wnumb/ заключаются в следующем... Я не понимаю, как использовать это, если это то, что я должен использовать.

Usage
var moneyFormat = wNumb({
    mark: '.',
    thousand: ',',
    prefix: '$ ',
    postfix: ' p.p.'
});

// Format a number:
moneyFormat.to( 301980.62 );
=> '$ 301,980.62 p.p.'

// Get a number back:
moneyFormat.from( '$ 301,980.62 p.p.' );
    => 301980.62

2 ответа

Решение

При сохранении значения для ввода необходимо добавлять числа только к некоторому атрибуту входного тега.

sliderFormat.noUiSlider.on('update', function( values, handle ) {
  inputValue.value = values[handle];
  $(inputValue).attr("actual", parseFloat(values[handle]).toString().replace('.',''));
});

И тогда вы можете заменить значение с помощью атрибута actual при отправке формы.

$("form").on("submit",function() {
  $("#how-much").val($("#how-much").attr("actual"));
});

Я надеюсь, что это работает в соответствии с вашими требованиями.

Я полагаю, вопрос с тысячной собственностью вы даете. вместо,

Другие вопросы по тегам