2010-10-04 22 views
6

में कुंजीपटल प्रदर्शित उदाहरण के लिए अगर मैंवहाँ एक रास्ता मोबाइल सफारी

<input type="text" id="myid"> 

है और मैं ipad उपयोग कर रहा हूँ, जब मैं इस इनपुट में ध्यान देते हैं, ipad अपने आप कीबोर्ड प्रदर्शित कर से बचने के लिए है। क्या इससे बचने का कोई तरीका है? धन्यवाद

+1

और कीबोर्ड प्रदर्शित नहीं होने पर उपयोगकर्ता उस फ़ील्ड में डेटा कैसे दर्ज करेगा? –

+1

एक फ़ील्ड इनपुट फ़ील्ड पर फ़ोकसिनग पर दिखाई देगी ताकि कोई आइटम चुन सके। एक साधारण चयन टैग ऐसा नहीं करेगा क्योंकि प्रत्येक विकल्प में कई डेटा आइटम होंगे। –

उत्तर

2

उस क्षेत्र पर ध्यान केंद्रित न करें। डिफ़ॉल्ट व्यवहार को रोकने के लिए इवेंट हैंडलर का उपयोग करें। ईवेंट हैंडलर कुछ इस तरह दिखेगा:

function onFocus(e) { 
    e.preventDefault(); 
    // you could change the color of the field to indicate this is the active field. 
} 

आपका टेबल हैंडलिंग कोड ब्राउज़र कभी इसे पर ध्यान केंद्रित कर के बिना इस क्षेत्र को पॉप्युलेट सकता है।

3

मुझे मिला सबसे अच्छा समाधान टेक्स्टरेरा पर एक अदृश्य div को स्थान देना है। यह टेक्स्टरी को टच इवेंट प्राप्त करने से रोकता है और यह कीबोर्ड को दिखने से रोकता है। Div पर ईवेंट कैप्चर करें, और यदि आप textarea संपादन योग्य कॉल करना चाहते हैं। फ़ोकस() उस पर, और वह कीबोर्ड को पॉप अप करेगा।

event.preventDefault का उपयोग करना बहुत अच्छा काम नहीं करता है। यह स्क्रीन को "हॉप" करने का कारण बनता है क्योंकि कीबोर्ड दिखाई देता है और फिर तुरंत गायब हो जाता है।

11

हाँ, बस केवल पढ़ने के लिए

<input type="text" id="myid" readonly="readonly" /> 

ध्यान दें कि यह तत्व के साथ काम नहीं करता है तत्व बनाते हैं। मुझे विश्वास है कि यह एक बग हो सकता है।

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