2012-08-10 16 views
39

मैं मोबाइल बैंकिंग एप्लिकेशन विकसित कर रहा हूं और मुझे वास्तविक समय में मुद्रा राशि इनपुट स्वरूपित करने में दिलचस्पी है।जावास्क्रिप्ट कैरेट स्थिति

मैंने पहले ही autoNumeric plugin और jQuery Format Currency Plugin का परीक्षण किया है लेकिन दोनों के पास Android 2. कर्सर पर कर्सर स्थिति समस्याएं हैं।

क्या किसी के पास इस ब्राउज़र के साथ जावास्क्रिप्ट समाधान संगत है?

+1

संख्यात्मक मास्क के साथ संघर्ष करने के बाद, मुझे मोबाइल ब्राउज़र के लिए उन्हें (और अन्य) अक्षम करना पड़ा। जहां तक ​​मुझे पता है कि कोई कामकाज नहीं है। – devundef

+0

क्या एंड्रॉइड ब्राउज़र का यह संस्करण 'obj.selectionStart' और' obj.selectionEnd' का समर्थन नहीं करता है? – scunliffe

+1

यदि आप पहले से ही jQuery का उपयोग कर रहे हैं, तो आपने jQuery ++ (मैंने हाल ही में टैब को कैप्चर करने और कुंजी प्रेस दर्ज करने के बाद सही कैरेट स्थिति प्लेसमेंट के लिए उपयोग किया है)? जब मैंने इसका परीक्षण किया तो बढ़िया काम करता है। भले ही, आप हमेशा अपनी रेंज और चयन विधियों (jQuery की आवश्यकता के बिना) का उपयोग कर सकते हैं। jquerypp.com –

उत्तर

1

मुझे ऑटो न्यूमेरिक के बारे में पता नहीं है, लेकिन http://code.google.com/p/jquery-formatcurrency/ बहुत अच्छा लग रहा है। आपके द्वारा पोस्ट किया गया जेएसफ़िल्ड उदाहरण मेरे डेस्कटॉप ब्राउज़र पर कैरेट सही ढंग से नहीं रखता है, लेकिन यह करता है, और मेरे (जेलीबीन) एंड्रॉइड फोन पर भी। (जिंजरब्रेड पर, निमिष कर्सर बार पंक्ति के अंत में कूद कर सकते हैं, लेकिन आप अभी भी संपादन किया जाएगा जहां यह पिछले था।) उनके प्रदर्शन का प्रयास करें: http://www.bendewey.com/code/formatcurrency/demo/format_as_you_type.html

+0

इस प्लग भी * ब्राउज़रों Andoid 2. पर कर्सर की स्थिति संबंधी समस्याएं हैं। –

-1

यह इस jQuery प्लगइन लगता है - NumBox - समाधान प्रदान करना है आपकी समस्या के लिए।

+0

इस प्लग केवल धुंध पर इनपुट अपडेट करता है, मुझे उस समाधान पर रूचि है जो वास्तविक समय में मूल्य अपडेट करता है। –

1

मैं आमतौर पर accounting.js का उपयोग आप से http://openexchangerates.github.io/accounting.js/#download

यह उपयोग करने के लिए काफी आसान है, यह डाउनलोड कर सकते हैं। आप देख सकते हैं कि यह उसी डाउनलोड पेज से कैसे काम करता है।

 function formatMoney(myField){ 
      if(myField.selectionStart || myField.selectionStart == '0'){ 
       var len = myField.value.length; 
       var caretPos = doGetCaretPosition(myField); 
       myField.value = accounting.formatMoney(myField.value); 
       var newlen = myField.value.length; 
       setCaretPosition(myField, newlen != len ? (newlen > len ? caretPos + 1 : caretPos - 1) : caretPos); 
      } 
     } 
     function doGetCaretPosition (ctrl) { 

      var CaretPos = 0; 
      // IE Support 
      if (document.selection) { 

       ctrl.focus(); 
       var Sel = document.selection.createRange(); 

       Sel.moveStart ('character', -ctrl.value.length); 

       CaretPos = Sel.text.length; 
      } 
      // Firefox support 
      else if (ctrl.selectionStart || ctrl.selectionStart == '0') 
       CaretPos = ctrl.selectionStart; 

      return (CaretPos); 

     } 
     function setCaretPosition(elem, caretPos) { 
      elem.value = elem.value; 
      if(elem != null) { 
       if(elem.createTextRange) { 
        var range = elem.createTextRange(); 
        range.move('character', caretPos); 
        range.select(); 
       } 
       else { 
        if(elem.selectionStart) { 
         elem.focus(); 
         elem.setSelectionRange(caretPos, caretPos); 
        } 
        else 
         elem.focus(); 
       } 
      } 
     } 

आप को टेक्स्ट फ़ील्ड के साथ कार्यों का उपयोग कर सकते हैं::

<input id="myField" type="text" onkeyup="formatMoney(this);" onChange="formatMoney(this);" onBlur="formatMoney(this);" /> 

हो रही है और सेटिंग कैरट

मैं एक जोड़े जावास्क्रिप्ट कार्य करता है जो मैं कर्सर प्रबंधन करने के लिए उपयोग करने के लिए बनाया स्थिति कार्य यहां से प्राप्त किए गए थे: Set keyboard caret position in html textbox

मैंने इसे एंड्रॉइड 2.1 एमुलेटर पर परीक्षण किया। हालांकि एम्यूलेटर धीमा था लेकिन यह काम कर रहा था। आप स्क्रीनशॉट यहाँ पा सकते हैं: https://www.dropbox.com/s/9ximuwh64kadiea/shot.JPG?dl=0

+0

मैंने एंड्रॉइड 2.3.6 डिवाइस पर इस समाधान का परीक्षण किया है और दुर्भाग्य से कैरेट की स्थिति की समस्या बनी हुई है। –

0

यहाँ एक खुला स्रोत है, अच्छी तरह से योगदान दिया है, अच्छी तरह से प्रतिबद्ध पुस्तकालय: https://github.com/plentz/jquery-maskmoney

यह है अपनी जरूरत का जवाब देता लगता है, है ना? हालांकि एंड्रॉइड के तहत इसका परीक्षण नहीं किया है।

+0

दुर्भाग्यवश ऐसा लगता है कि कुछ एंड्रॉइड मुद्दे: https://github.com/plentz/jquery-maskmoney/issues?utf8=%E2%9C%93&q=android –

+1

मेरा बुरा। अगली बार समस्याओं की जांच करेगा। –