2012-12-08 163 views
2

我的web應用程序中有一些輸入,我們要求用戶輸入百分比值(例如10.75%,23%)。目前,他們必須以小數形式輸入這些值(例如0.1075,0.23)。百分比值的輸入

這對一些用戶造成混亂,所以我希望有一種方法可以將這些值轉換爲和來自這些格式(後端具有十進制值,HTML輸入顯示百分比值)。有沒有解決方案,而不必與JavaScript或類似的滾動我自己的?

我在HTML5輸入中沒有看到任何可以做到這一點的內容,而且我無法找到能輕鬆完成的JavaScript庫。

其他人以什麼方式在HTML中進行百分比輸入?


附加信息

web應用程序是使用Java /春天,所以來到HTML頁面的值是從有問題的java對象來串,所以最好我正在尋找的東西,不需要任何後端編碼。


回答

事實證明,春季3.0會自動完成。使用以下註解字段:

@NumberFormat(style = NumberFormat.Style.PERCENT) 
private BigDecimal rate; 

將執行與輸入字段之間的所有轉換。

回答

2

所需的JavaScript非常簡單。例如,您可以在用戶提交時將用戶輸入的分數值存儲在隱藏字段中。

​<form id="myForm"> 
    <input type="text" id="myPercent" name="myPercent" />% 
    <input type="hidden" id="myFraction" name="myFraction" /> 
    <input type="submit" /> 
</form>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 
<script type="text/javascript"> 
    document.getElementById('myForm').onsubmit = function() { 
     document.getElementById('myFraction').value = 
      document.getElementById('myPercent').value/100; 
    } 
</script> 
1

這是簡單的數學... 75至.75是75/100。在提交數字後加入一行來轉換數字。

+0

理想情況下,我希望在一個輸入框中完成所有操作(不使用隱藏字段)。如果在失去焦點後10.75%變爲0.1075,用戶可能會有點困惑。 –

+1

你不能這樣做嗎?在輸入框後面顯示一個「%」字符,他們鍵入75,然後當你提交表單時除​​以100? –

+2

我真的不明白你的問題。讓他們輸入75.當他們提交它時,你在你的代碼中將其除以100 ......如果你想返回一個百分比值,只需乘以100,然後返回它。也許你需要給我們一些關於你的webapp如何工作的信息。 – Lotzki