2012-03-21 7 views
10

पर निर्दिष्ट इनपुट फ़ील्ड के लिए आईफोन कीपैड को कैसे बंद करें I क्रेडिट कार्ड समाप्ति फ़ील्ड के लिए एक महीनेपिकर इनपुट (jQuery UI डेटपिकर के समान) का उपयोग कर रहा हूं।वेब पेज

मुझे आईफोन कीपैड को दबाने की ज़रूरत है क्योंकि यह महीने पिकर को छुपाता है।

मैंने फ़ील्ड को केवल पढ़ने के लिए सेट करने का प्रयास किया है और यह एक स्वीकार्य समाधान नहीं है - सफारी आईओएस 5.1 में पढ़ा गया फ़ील्ड कीबोर्ड नेविगेशन (कीपैड पर पिछला/अगला बटन) में छोड़ दिया गया है। क्षेत्र को धुंधला करना भी स्वीकार्य नहीं है क्योंकि यह सत्यापन को ट्रिगर करता है (हम jQuery सत्यापन का भी उपयोग कर रहे हैं)।

क्या आईफोन कीबोर्ड को एक ही फ़ील्ड पर इसे पढ़ने या इसे धुंधला करने के बिना बंद करने का कोई तरीका है?

उत्तर

5

मैं कीबोर्ड को छुपाने के रास्ते में नहीं आया हूं। लेकिन क्या आपने "इनपुट" प्रदर्शित करने का वैकल्पिक तरीका सोचा है। एक विकल्प <input type="month" /> का उपयोग करेगा जो आईओएस 5 में देशी महीने पिकर लाता है।

दूसरा विकल्प स्टाइल उदाहरण होगा। इनपुट तत्व के रूप में अवधि तत्व (-वेबिट-उपस्थिति आईओएस पर काम नहीं कर रहा है), और तत्व के लिए tabindex जोड़ना। यह भी काम कर सकता है, हालांकि मुझे उस महीने के पिकर के बारे में पता नहीं है जिसका आप उपयोग कर रहे हैं।

तीसरा विकल्प - क्या आप क्षेत्र को धुंधला होने पर मैन्युअल रूप से ट्रिगर होने पर सत्यापन प्रक्रिया को रोक नहीं सकते?

+1

अच्छा जोड़ा गया! '<इनपुट प्रकार =" माह "/>' आईफोन के लिए एक बेहतर महीने पिकर फेंकता है। ओपेरा 11.6 एक पूर्ण तिथि पिकर पॉप अप करता है इसलिए मुझे किसी भी तरह से काम करना होगा। यह पूछे गए प्रश्न का उत्तर नहीं देता है लेकिन ऐसा लगता है कि यह समस्या हल करता है। –

+1

इसलिए मैंने आईफोन और आईपॉड के लिए एक क्रैपी उपयोगकर्ता एजेंट की जांच की, और टाइप विशेषता को "महीने" पर सेट किया और सत्य होने पर केवल महीना पिकर लोड किया। बहुत अच्छा काम करता है। मैं बाद में उपयोगकर्ता एजेंट की जांच के बजाय एक स्क्रीनसाइज + ऑनटouchस्टार्ट के साथ फिर से देखूंगा। आपका बहुत बहुत धन्यवाद! –

2

मैं Drupal, जहां इनपुट फ़ील्ड गतिशील जोड़कर किया जाएगा में एक ही मुद्दा था, इसलिए मैं कुछ js जोड़ा, iPhone/iPad के लिए चेक करके और "केवल पढ़ने के लिए" संपत्ति

var checkUserAgent = navigator.userAgent; 
    if (checkUserAgent.match(/iPad/i) || checkUserAgent.match(/iPhone/i)) { 
     var checkBabyId1 = $('#babys_due_date_id').length > 0; 
     if (checkBabyId1 == true) { 
      $('#babys_due_date_id').find('input').prop('readonly', true); 
     } 
    }