2013-08-19 5 views
13

मैं अपने पृष्ठों में एचटीएमएल 5 इनपुट नियंत्रणों का उपयोग कर रहा हूं। मेरी आवश्यकता में से एक मुद्रा सुविधा के साथ एक टेक्स्टबॉक्स है।एचटीएमएल 5 मुद्रा प्रारूप

<input type="number" pattern="(d{3})([.])(d{2})" /> 

यह मेरे जैसे 10,000.00

लेकिन फिर भी सब अपने सभी मेरी आवश्यकताओं को पूरा करने नहीं मान टाइप करने के लिए अनुमति देता है: इस के लिए मैं इस कोशिश की। मैं चाहता हूं कि यदि उपयोगकर्ता 10000 में टाइप करता है तो इसे 10,000 ऑनब्लूर जैसे मुद्रा प्रारूप में परिवर्तित करना चाहिए।

और जब मैं अपने जावास्क्रिप्ट में इनपुट प्रकार से मान पढ़ता हूं, तो मुझे एक स्ट्रिंग मान के बजाय एक फ्लोट देना चाहिए जिसका उपयोग मैं बिना पार्सिंग के गणना के लिए कर सकता हूं।

+0

'इनपुट प्रकार =" number ".value' किसी भी मामले में एक स्ट्रिंग होगा। आपको किसी भी बिंदु पर इसे किसी भी तरह से पार्स करने की आवश्यकता है ... – Teemu

+0

इनपुट प्रकार = "संख्या"। किसी भी मामले में मूल्य स्ट्रिंग होगा। लेकिन सरल पार्सफ्लैट (इनपुट प्रकार = "संख्या" .value) सभी मामलों में काम किया होगा। – user2561997

उत्तर

17

यहाँ एक अतिरिक्त input type="text" साथ एक समाधान है:

http://jsfiddle.net/UEVv6/2/

एचटीएमएल

<input type="text" id="userinput" pattern="[0-9]*"> 
<br> 
<input type="number" id="number"> 

जे एस

document.getElementById("userinput").onblur =function(){  

    //number-format the user input 
    this.value = parseFloat(this.value.replace(/,/g, "")) 
        .toFixed(2) 
        .toString() 
        .replace(/\B(?=(\d{3})+(?!\d))/g, ","); 

    //set the numeric value to a number input 
    document.getElementById("number").value = this.value.replace(/,/g, "") 

} 

regex यहां से है How to print a number with commas as thousands separators in JavaScript

+0

धन्यवाद इसने मेरी समस्या को हल किया है इसके नीचे अमिथ समाधान के साथ। – user2561997

2

कोशिश इस - http://jsbin.com/azOSayA/1/edit

function commaSeparateNumber(val){ 
    while (/(\d+)(\d{3})/.test(val.toString())){ 
     val = val.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2'); 
    } 
    return val; 
    } 
$('#elementID').focusout(function(){ 

    alert(commaSeparateNumber($(this).val())); 
}); 
+0

धन्यवाद अमिथ। आपने मेरी समस्या हल की। – user2561997