2014-08-27 50 views
0

我正在處理的系統中有很多價格輸入,我想爲它們創建一個css類,因此輸入將具有貨幣掩碼(like 4.500,00[yes, '.' for thousands and ',' for decimal])。在貨幣輸入中創建一個css類

我擡起頭,發現這個jsmaskedinput,但它不符合我的需要。輸入可以有號碼的0至13之間的任何量,並且當它被輸入,像它會被操縱:

10 -> 10,00 

1500 -> 1.500,00 

6331500 -> 6.331.500,00 

5446331500 -> 5.446.331.500,00 

任何提示?

非常感謝! :)

+2

使用CSS,你不能操作實際文本。你需要使用PHP或Javascript來實現它,這對你來說可以嗎?如果是這樣,請檢查第二個代碼塊在這個答案:http://stackoverflow.com/a/18147068/1930721 – LinkinTED 2014-08-27 12:02:04

+0

你需要一種腳本語言來做這樣的事情。 CSS不是。您可以在網絡上找到大量隨時可用的JavaScript代碼片段。 – feeela 2014-08-27 12:12:55

回答

1

Here是您的解決方案

HTML

<div id="this">-123456789.12345678</div> 
改編自 this鏈接

JS

var myText = $("#this").text(); 
myText = addCommas(myText); 
$("#this").text(myText); 
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; 
} 

答案。

  • 原來的號碼是:-123456789.12345678
  • 輸出號碼爲:-123.456.789,12345678
+0

非常感謝你!像魅力一樣工作。 – 2014-11-24 19:49:42

-1

HTML

<form method = "POST">  
    <label for = "currency">Currency</label> 
    <input type = "number" pattern = "^\\$?(([1-9](\\d*|\\d{0,2}(,\\d{3})*))|0)(\\.\\d{1,2})?$" id = "currency" required autofocus/> 
    <br /><br /> 
    <input type = "submit" value = "Send" /> 
</form> 

http://jsfiddle.net/2gqodf13/

我希望它會幫助你;)

+0

您提供的解決方案存在許多問題。模式屬性中不需要開始和結束錨點,「數字」類型不允許「$」,您不需要雙重轉義,並且您沒有注意到他正在使用歐式風格的分隔符。嘗試'\ $?(([1-9](\ d * | \ d {0,2}(。\ d {3})*))| 0)(\,\ d {2})?' – 2014-08-27 14:21:54