2009-07-22 9 views
6

मेरे पास टेक्साफील्ड की एक श्रृंखला है, जिसे मैं मुद्रा के रूप में प्रारूपित करना चाहता हूं। अधिमानतः, यह फ्लाई पर किया जाएगा लेकिन कम से कम onblur। मुद्रा प्रारूप द्वारा मेरा क्या मतलब है 34 9 507 -> $ 34 9, 507। क्या यह संभव है?मैं एचटीएमएल टेक्स्टफील्ड में दर्ज पाठ को कैसे प्रारूपित कर सकता हूं?

मैं एचटीएमएल/सीएसएस/जेएस समाधान पसंद करता हूं, क्योंकि मुझे कम स्पष्टीकरण की आवश्यकता है। मैं jQuery के साथ बिल्कुल परिचित नहीं हूँ।

किसी भी मदद की बहुत सराहना की जाती है।
माइक

उत्तर

5

"जावास्क्रिप्ट प्रारूप मुद्रा" के लिए एक गूगल खोज में सबसे पहले परिणाम

http://www.web-source.net/web_development/currency_formatting.htm

function CurrencyFormatted(amount) 
{ 
    var i = parseFloat(amount); 
    if(isNaN(i)) { i = 0.00; } 
    var minus = ''; 
    if(i < 0) { minus = '-'; } 
    i = Math.abs(i); 
    i = parseInt((i + .005) * 100); 
    i = i/100; 
    s = new String(i); 
    if(s.indexOf('.') < 0) { s += '.00'; } 
    if(s.indexOf('.') == (s.length - 2)) { s += '0'; } 
    s = minus + s; 
    return s; 
} 
11

यहाँ एक कुछ कोड मैं एक लंबे समय पहले लिखा था अल्पविरामों से एक नंबर फ़ॉर्मेट करने के लिए है। एक उदाहरण formatNumber(349507, 0, 2, true)"349,507.00" है।

// Reformats a number by inserting commas and padding out the number of digits 
// and decimal places. 
// 
// Parameters: 
//  number:  The number to format. All non-numeric characters are 
//     stripped out first. 
//  digits:  The minimum number of digits to the left of the decimal 
//     point. The extra places are padded with zeros. 
//  decimalPlaces: The number of places after the decimal point, or zero to 
//     omit the decimal point. 
//  withCommas: True to insert commas every 3 places, false to omit them. 
function formatNumber(number, digits, decimalPlaces, withCommas) 
{ 
     number  = number.toString(); 
    var simpleNumber = ''; 

    // Strips out the dollar sign and commas. 
    for (var i = 0; i < number.length; ++i) 
    { 
     if (".".indexOf(number.charAt(i)) >= 0) 
      simpleNumber += number.charAt(i); 
    } 

    number = parseFloat(simpleNumber); 

    if (isNaN(number))  number  = 0; 
    if (withCommas == null) withCommas = false; 
    if (digits  == 0) digits  = 1; 

    var integerPart = (decimalPlaces > 0 ? Math.floor(number) : Math.round(number)); 
    var string  = ""; 

    for (var i = 0; i < digits || integerPart > 0; ++i) 
    { 
     // Insert a comma every three digits. 
     if (withCommas && string.match(/^\d\d\d/)) 
      string = "," + string; 

     string  = (integerPart % 10) + string; 
     integerPart = Math.floor(integerPart/10); 
    } 

    if (decimalPlaces > 0) 
    { 
     number -= Math.floor(number); 
     number *= Math.pow(10, decimalPlaces); 

     string += "." + formatNumber(number, decimalPlaces, 0); 
    } 

    return string; 
} 

तुम इतनी तरह एक onblur ईवेंट हैंडलर पर इसका इस्तेमाल कर सकते हैं:

<input type="text" onblur="this.value = '$' + formatNumber(this.value, 0, 0, true)" /> 

वह नंबर करने के लिए अल्पविराम जोड़ सकते हैं और मोर्चे पर डॉलर चिन्ह तमाचा होगा।

+0

धन्यवाद, जॉन। मैंने मुद्रा पद्धति के लिए फ्लाई स्वरूपण प्राप्त करने के लिए इस विधि का उपयोग किया। भी पढ़ने के लिए बहुत आसान है! +1 –

+0

-1 इसमें एक बग है और 99 99 में समाप्त होने वाली संख्याओं के साथ काम नहीं करता है, उदाहरण के लिए "1879.9 999" प्रारूप 1,879.10 (!) –

+0

के रूप में यह एक बग नहीं है, जो डिज़ाइन द्वारा है। यदि आपने दशमलव स्थान को 4 पर सेट किया था, तो आपके पास ".9999" था। – emrahgunduz

संबंधित मुद्दे

 संबंधित मुद्दे