2012-12-28 18 views
7

समस्याकोणीयजेएस: इनपुट में डेटा कैसे प्रारूपित करें?

मैं मदद करने के लिए उपयोगकर्ता को पता है कि वे क्या एक फोन नंबर के रूप में टाइप करना चाहिए में नेत्रहीन एक इनपुट फ़ील्ड फ़ॉर्मेट करना होगा। उदाहरण के लिए, मैं एक 3 अंकों का क्षेत्र कोड, 3 अंक उपसर्ग और 4 अंक प्रत्यय के रूप में एक फोन नंबर स्वीकार करना चाहता हूं: (207) 555-1212। मैं चाहता हूँ करने के लिए:

  1. सहायक इनपुट क्षेत्र स्वरूपण प्रदान करते हैं - उन कोष्ठकों और हाइफन
  2. मैं 'सहायक' अक्षर वास्तविक डेटा मैं अपने मॉडल में स्टोर में शामिल किया जा नहीं करना चाहते हैं ।
  3. उपयोगकर्ता प्रकार के रूप में, मैं चाहता हूं कि कोष्ठक जादुई रूप से प्रकट हों, फिर हाइफ़न सही बिंदु पर भी दिखाई दे।

ऐसा करने का सबसे अच्छा तरीका क्या है?

नोट: यह किसी संख्या को प्रदर्शित करने के लिए नहीं है - मैं इसके लिए फ़िल्टर का उपयोग कर सकता हूं। यह input फ़ील्ड के भीतर डेटा स्वरूपण के लिए है।

आपकी मदद के लिए धन्यवाद!

+0

शायद आपको कस्टम इनपुट फ़ील्ड (विजेट) की आवश्यकता है? – akonsu

उत्तर

14

आप देख रहे हैं एक सरल उपाय के लिए, आप AngularUI एक कोशिश दे सकते हैं, http://angular-ui.github.com/

यह है कि पृष्ठ के "मास्क" अनुभाग से उदाहरण है:

<input ng-model="maskDemo" ui-mask="'99-99-9999'"> 

"9" संख्याएं हैं, और अन्य सामान सिर्फ एक मुखौटा/प्लेसहोल्डर्स है। यह केवल वास्तविक मूल्य जमा करना चाहिए। आप मुखौटा को ब्रांड्स और अन्य कुछ भी शामिल करने के लिए संपादित करेंगे जो आपको चाहिए।

+0

इसका एकमात्र नकारात्मक पक्ष यह है कि जब फ़ोन नंबर कहीं और देखा जाता है, या डेटाबेस में सहेजा जाता है, तो यह "99 99 99 99 99" जैसा दिखाई देगा। – MyCodeSucks

+8

@ MyCodeSucks जो आमतौर पर आप चाहते हैं, किसी भी गैर-अंक को पट्टी करें, फिर जब भी आप अपना स्वरूपित नंबर प्रदर्शित करना चाहते हैं, तो आप इसे 'ui-mask'' लागू करें। –

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