2016-04-22 63 views
0

我使用數字格式(wNumb)作爲文本字段。它由範圍滑塊(noUislider)更新,並且工作正常。使用Javascript數字格式時提交初始值

我遇到的問題是,當我提交表單保存的值由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 
+0

澄清疑慮 - 你想提交vaue作爲'301980.62'而不是'$ 301,980.62 p.p.'嗎?或者如果你的格式化器不能正常工作? – Bhumika107

+0

我想用戶設置301980,這將顯示爲$ 301.980,但是當點擊表單的提交按鈕時,再次獲得301980。目前,我在數據庫中獲得301 ... 最後一塊代碼不是來自我的,而是來自文檔,我不知道如何在代碼中使用它。 – Sbe88

回答

0

保存輸入值時,只需要將數字添加到輸入標記的某個屬性。

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

然後你就可以在提交表單使用attr actual替換值。

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

我希望這可以按照您的要求。

+0

非常感謝!在此期間,我做了一個也在工作的循環。 現在隱藏了多少。 滑塊更新 - >多麼多 多少更新 - >一個新的字段被稱爲「顯示」 顯示更新 - >滑塊 – Sbe88

0

我想,與千物業問題,你給。而不是,

+0

感謝您的回答,但是,而不是。不會改變任何問題。 – Sbe88