2011-07-26 6 views
31

में मोबाइल फोन पर वर्चुअल कीबोर्ड दिखाएं मैं अपनी साइट का मोबाइल संस्करण बना रहा हूं। उस साइट का एक हिस्सा है जहां एक संवाद इनपुट इनपुट के साथ पॉप अप करता है। आम तौर पर मैं पाठ इनपुट पर ध्यान केंद्रित करने के लिए सिर्फ jQuery का उपयोग करता हूं, लेकिन यह काम नहीं कर रहा है। यहां मैं कोशिश कर रहा हूं:जावास्क्रिप्ट

$("#textinput").focus(); 
$("#textinput").click(); 
$("#textinput").trigger("tap"); //jQuery Mobile 

उनमें से कोई भी काम नहीं कर रहा है। कोई विचार? मैं इसे अपने DroidX पर परीक्षण कर रहा हूं। मैं jQuery मोबाइल का उपयोग कर रहा हूं लेकिन अगर वे मदद करते हैं तो मैं अन्य पुस्तकालयों के लिए खुला हूं।

उत्तर

38

आप कम से कम आईओएस (आईफोन) में नहीं कर सकते हैं, और मैं एंड्रॉइड पर भी विश्वास करता हूं। यह उपयोगिता मुद्दा है कि उपयोगकर्ता इनपुट को छोड़कर कीबोर्ड को ट्रिगर करने की अनुमति नहीं दी जानी चाहिए (यह स्वचालित होने पर यह केवल परेशान है)।

तरीके के एक जोड़े मैं के बारे में पता इस से बचने के लिए कर रहे हैं:

  • prompt() कुंजीपटल
  • खोलता है आप एक .click() घटना के भीतर से .focus() ट्रिगर करते हैं (अपने संवाद खोलने से जैसे), कीबोर्ड दिखाता है
+0

आह, समझ में आता है। सिद्धांत रूप में यह उनके दृष्टिकोण से समझ में आता है कि कीबोर्ड केवल तभी होना चाहिए जब प्रयोक्ता उपयोगिता कारणों के लिए तत्व पर ध्यान केंद्रित करे। हालांकि, जहां एक स्क्रीन स्क्रीन पर एकमात्र चीज है और उपयोगिता कारणों के लिए मैं स्वचालित रूप से उस तत्व पर ध्यान केंद्रित करना चाहता हूं, कीबोर्ड पॉप अप नहीं करेगा। किसी भी दर पर, आपकी मदद के लिए धन्यवाद। – Adam

+1

एक विशाल चेतावनी यह है कि 'क्लिक' ईवेंट होना आवश्यक है। भले ही 'टैप' और 'क्लिक' मूल रूप से समान हों, फिर भी इसे 'क्लिक' ईवेंट होना चाहिए या यह – Funkodebat

+0

नहीं खुल जाएगा, लेकिन ओह क्यों * कीबोर्ड * ईवेंट के भीतर से .focus() को ट्रिगर नहीं करता है? – Michael

17

$ ("# textinput")। फोकस();

इनपुट तत्व पर फ़ोकस सेट करके कीबोर्ड खोलना, केवल तभी काम करेगा जब फोकस "उपयोगकर्ता संदर्भ" (उदा। क्लिक, mousedown, mouseup) के भीतर सेट किया गया हो।

"स्क्रिप्ट संदर्भ" से (सेटटाइमआउट, कॉलबैक अजाक्स कॉल से लौटाया गया) कीबोर्ड दिखाई नहीं देगा।

1

आप का उपयोग कर सकते हैं:

$(textFiled).trigger("focus"); 

आप कुछ समारोह है कि कुछ ओवरले खोलने पर ट्रिगर किया जाएगा, या जब दस्तावेज़ तैयार है में इस कोड डाल सकते हैं।