2012-02-10 13 views
12

के बजाय अगला है यह मुझे पागल कर रहा है और मुझे कहीं भी जवाब नहीं मिल रहा है।एचटीएमएल फोनगैप एंड्रॉइड: संख्यात्मक सॉफ्ट कीबोर्ड के पास बटन

मेरे पास मेरे फोनगैप ऐप में फॉर्म हैं। यदि इनपुट प्रकार = "टेक्स्ट", टेक्स्ट कीबोर्ड पॉप अप होता है और कोने में "जाना" प्रदर्शित होता है। जब आप जाते हैं, तो यह फॉर्म सबमिट करता है। जैसा कि मैं उम्मीद करता हूं वह सब काम करता है। लेकिन अगर मैं इनपुट प्रकार = "संख्या" का उपयोग करता हूं, तो संख्या कीबोर्ड पॉप अप करता है और "अगला" कोने में प्रदर्शित होता है। जब आप अगला क्लिक करते हैं, यदि बटन टैग से पहले कोई अन्य इनपुट बॉक्स है, तो यह उस इनपुट पर जाता है। वह ठीक है। । । आदर्श नहीं है, लेकिन समझ में आता है। लेकिन अगर यह पृष्ठ पर आखिरी इनपुट फ़ील्ड है, तो "अगला" कुछ भी नहीं करता है। यह बटन पर फ़ोकस नहीं करता है (यहां तक ​​कि tabindex के साथ) और यह फ़ॉर्म (आदर्श) सबमिट नहीं करता है।

मैं फोनगैप 1.3.0 और jquery 1.7 का उपयोग कर रहा हूं यदि इनमें से कोई भी मदद करता है।

+0

इस पर +1, मैं सबकुछ कोशिश कर रहा हूं। इस बीच फोनगैप संस्करण 1.5.0 तक है और मैं jQueryMobile 1.0.1 का उपयोग करता हूं। कोई प्रगति नहीं। मैंने कोशिश की है कि यह किसी भी क्षेत्र विशेषताओं का परिणाम है, लेकिन इसका कोई फायदा नहीं हुआ है। – Wytze

+0

ऐसा नहीं लगता है कि यह एक फोनगैप मुद्दा है - यह सामान्य एंड्रॉइड ब्राउज़र में भी होता है। –

+0

यह सच है कि इसका फोनगैप से कोई लेना देना नहीं है। हालांकि मुझे लगता है कि इसे ठीक करने के लिए जावा आधारित विधि थी क्योंकि मेरा ऐप फोनगैप है। एकमात्र फिक्स जो मैंने पाया है वह है विट्ज़ का छुपा क्षेत्र जो ऑटो फॉर्म को प्रस्तुत करता है। यह एक भयानक हैक है, और इस बीच हम 2.0gap फोन पर हैं। मुझे अभी भी एंड्रॉइड डेवलपर्स के हिस्से पर यह एक बहुत ही अप्रिय निर्णय मिलता है। – grail143

उत्तर

5

ठीक है, अब मेरे पास ऐसा कुछ है जो उत्तर की तरह दिखता है और उत्तर की तरह quacks।

यह एक भयानक हैक है, और मुझे इस बिंदु पर कुछ दुष्प्रभाव का सामना करना पड़ रहा है, लेकिन यह मानव जाति के लिए एक छोटी छलांग है।

अपने फॉर्म में एक अदृश्य पाठ इनपुट जोड़ें, जो इसे फोकस प्राप्त होने पर स्वचालित रूप से फॉर्म सबमिट करता है। चूंकि यह केवल अंतिम नंबर फ़ील्ड से 'अगली' या टैबबिंग दबाकर उपयोगकर्ता से फोकस प्राप्त कर सकता है, इसलिए उपयोगकर्ता अनुक्रम में एक सुंदर ठोस तर्क होना चाहिए।

<input type='text' style="opacity:0;" onfocus="javascript:$('#thisForm').submit();"> 

दुष्प्रभाव होते हैं:

  • गुप्त फ़ॉर्म क्षेत्र संक्षेप में दिखाई जाएगी। संख्या संख्या पर फिर से ध्यान केंद्रित करने के लिए आप ऑनफोकस हैंडलर का उपयोग करके से इससे बच सकते हैं। या आप इनपुट की चौड़ाई 0 पर सेट कर सकते हैं। बाद वाला मेरे लिए सबसे अच्छा काम करता है।
  • यदि आप मेरे जैसे jQueryMobile का उपयोग कर रहे हैं, तो आप अपने आप पर भयानक पृष्ठ संक्रमण कुरूपता आमंत्रित कर रहे हैं, इसलिए यदि आपका फॉर्म एक संवाद में है और फ़ॉर्म सबमिट करने से संवाद बंद हो जाता है, तो संवाद संक्रमण सेट करना सुनिश्चित करें (जब यह हो पिछली स्क्रीन से खोला जा रहा है) 'कोई नहीं'।
+0

वह बहुत उपयोगी था! धन्यवाद! – grail143

+0

मैं एचटीसी जी 2 एंड्रॉइड संस्करण 2.3.4 पर चौड़ाई: 0 के द्वारा इनपुट छिपाने में सक्षम नहीं था।हालांकि, मैं पृष्ठभूमि रंग का उपयोग करके इसे छिपाने में सक्षम था: पारदर्शी ;, और कष्टप्रद नारंगी एंड्रॉइड फोकस सीमा को -webkit-tap-highlight-color के साथ छुपाएं: rgba (255,255,255,0); http://stackoverflow.com/questions/5210481/disable-android-orange-outline-higlight-on-focus। – Bobby

+0

हैकी लेकिन सहायक! मैंने 'स्थिति सेट करके इनपुट छुपाया: पूर्ण' – maGo

9

आप JQuery में निम्नलिखित बाँध का उपयोग करके अगले कीबोर्ड प्रेस का पता लगाने कर सकते हैं:

$('input').on('keydown', function(e){ 
    if(e.which === 9) { 
     //your code here 
    } 
}); 

'अगले' बटन एक कुंजीपटल है, जो दुर्भाग्य से कुंजी कोड 9. है पर टैब कुंजी दबाने घटना emulates, कीप्रेस और कीप घटनाएं अगली कुंजी घटना का पता नहीं लगाती हैं, इसलिए आपको इसे कुंजीडाउन पर बांधना होगा।

आशा है कि मदद करता है!

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