2014-09-19 7 views
8

सफारी में, आईओएस 8, दिनांक या समय इनपुट में ध्यान केंद्रित करने से दिनांक या समय पिकर खुलता है और पाठक इनपुट की सामग्री को संपादित करने की अनुमति देता है।आईओएस 8 सफारी में, केवल पढ़ने के लिए इनपुट को गलत तरीके से संभाला जाता है

टेक्स्ट इनपुट में फ़ोकस करते समय, पिछले, अगले और पूर्ण बटन के साथ नीचे एक टूलबार दिखाई देता है, और जब तक डोन टैप नहीं किया जाता है, तब तक नहीं जा रहा है, या पृष्ठ पर एक और इनपुट टैप किया गया है।

जब इनपुट जावास्क्रिप्ट से प्रोग्रामेटिक रूप से केंद्रित होता है, तो कुछ भी नहीं हो रहा है, लेकिन: यदि किसी टचस्टार्ट ईवेंट श्रोता को पृष्ठ के कुछ हिस्सों में जोड़ा जाता है, तो कहीं भी स्पर्श करने से तारीख, समय पिकर या टूलबार आ जाएगा, भले ही श्रोता खाली है।

नमूना कोड:

<input id="test1" readonly /> 
<input id="test2" type="date" readonly /> 
<input id="test3" type="time" readonly /> 

<script> 
    document.getElementById('test1').focus(); 
    window.addEventListener('touchstart', function() {}); 
</script> 

लाइव उदाहरण: http://jsfiddle.net/cw3hump4/embedded/result/

कोई भी विचार या कि यह कैसे से बचने के लिए पर समाधान?

अद्यतन:

प्रयोज्य/पहुँच कारणों मैं ध्यान केंद्रित की जरूरत के लिए प्रबंधन: इनपुट पर दोहन एक संवाद को खोलता है, जब संवाद बंद कर दिया है, मैं ध्यान केंद्रित इनपुट पर वापस डाल दिया। सॉफ्ट कीबोर्ड/डेट पिकर/टाइम पिकर पॉप अप को रोकने के लिए इनपुट को केवल पढ़ने के लिए, लेकिन अक्षम नहीं किया जा सकता है, इसलिए मैं एक मान निर्धारित कर सकता हूं, और उस पर ध्यान केंद्रित कर सकता हूं।

उत्तर

5

मुझे लगता है यह सफारी iOS8

में एक बग है यहाँ jQuery के साथ समाधान नहीं है।

$(function() { 
    $('input[readonly]').on('touchstart', function(ev) { 
    return false; 
    }); 
}); 

संपादित करें:

कैसे इस बारे में?

$(function() { 
    $('input[readonly]').on('focus', function(ev) { 
    $(this).trigger('blur'); 
    }); 
}); 
+0

इसके साथ 2 समस्याएं हैं: (1) अगर इनपुट (2) से स्पर्श शुरू होता है तो यह पृष्ठ स्क्रॉल को मारता है यदि इनपुट जावास्क्रिप्ट से फोकस हो जाता है तो समस्या हल नहीं होती है (http://jsfiddle.net देखें/cw3hump4/1 /, स्क्रीन को कहीं भी स्पर्श करें और डेटपिकर पॉप अप करें) – dioslaska

+0

ने उत्तर संपादित किया। – rintaro

+0

धन्यवाद, लेकिन मेरे परिदृश्य में मुझे फोकस प्रबंधन की आवश्यकता है। सवाल अपडेट किया गया। मुझे लगता है कि मुझे बग ठीक होने तक ध्यान केंद्रित किए बिना जीना है ... – dioslaska

-2

एक रूप तत्वों में इनपुट तत्वों लपेटकर,

<form><input id="test1" readonly /></form> 
<form><input id="test2" type="date" readonly /></form> 
<form><input id="test3" type="time" readonly /></form> 

iOS8 तरह इनपुट तत्वों पसंद नहीं है thats एक ऐसा फ़ॉर्म तत्व में लिपटे नहीं की कोशिश करें, iOS8 में एक बग हो रहा है।

+0

मैंने अभी कोशिश की है, लेकिन यह वही व्यवहार करता है (8.0.2 और 8.1 पर भी) – dioslaska

+0

आपको पृष्ठ पर एकाधिक फॉर्म फ़ील्ड्स का उपयोग करने से बचने की कोशिश करनी चाहिए । – littlevahn

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