2016-04-20 5 views
11

मेरी सैमसंग गैलेक्सी टैब पर है 4 (Android 4.4.2, क्रोम: 49.0.2623.105) मैं एक स्थिति में भाग जहां कीकोड हमेशा होता है 229कीकोड हमेशा 229

मैं सेटअप एक साधारण परीक्षण है दो की स्थिति के लिए

<div contenteditable="true"></div> 
<input> 
<span id="keycode"></span> 

स्क्रिप्ट:

$('div, input').on('keydown', function (e) { 
    $('#keycode').html(e.keyCode); 
}); 

DEMO

सौभाग्य मैं इसके बारे में पोस्ट पा सकता हूं, लेकिन मुझे एक समाधान समाधान के साथ कोई नहीं मिला। किसी ने इसके बजाय keyup का उपयोग करने या textInput ईवेंट का उपयोग करने का सुझाव दिया है, लेकिन उसे केवल blur पर निकाल दिया गया है।

अब, यह सब ऊपर से, यह डिफ़ॉल्ट शेयर ब्राउज़र :(

किसी भी मदद की सराहना की जाएगी साथ ऐसा नहीं होता है

अद्यतन: यदि ऐसा पाया जाता है कि इस मैं कर सकते हैं संभव नहीं है अभी भी कैरट से पहले चार हड़पने: post

+0

मैंने सैमसंग गैलेक्सी एस 4 पर क्रोम ब्राउजर में अपनी समस्या का पुनरुत्पादन किया। हालांकि यह स्टॉक ब्राउज़र में ठीक काम करता है। –

उत्तर

-4

इस संपत्ति की जांच पर e.keyCode

के बजाय e.which प्रयास करें अधिक जानकारी के लिए https://api.jquery.com/event.which/

+5

नोप, इवेंट। जो 22 9 दुर्भाग्यवश –

2

एक ही समस्या में चल रहा है, केवल एंड्रॉइड पर स्टॉक सैमसंग कीबोर्ड के साथ होता है। कुंजीपटल भविष्यवाणियों को बंद करने के लिए चारों ओर एक काम था, जो इनपुट को तय करता था। फिर भी यह देखने के लिए आगे विश्लेषण करना कि क्या जेएस भूमि में एक काम मिल सकता है।

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

क्या हुआ यह है कि कीकोड 22 9 के साथ सभी घटनाओं को रोका जा रहा था, और नतीजतन कोई टेक्स्ट दर्ज नहीं किया गया था। एक बार जब हमने श्वेतसूची में भी कुंजीकोड 22 9 जोड़ा, तो सब ठीक काम करने के लिए वापस चला गया।

तो यदि आप किसी प्रकार का कस्टम या तृतीय पक्ष फॉर्म इनपुट कंट्रोल घटक का उपयोग कर रहे हैं, तो यह जांचना सुनिश्चित करें कि उस कुंजीकोड 22 9 को श्वेतसूची/अनुमति दी गई है और डिफ़ॉल्ट रूप से रोका नहीं गया है।

उम्मीद है कि यह किसी की मदद करेगा।

+0

भी दिखाता है, मुझे एक कामकाजी समाधान में दिलचस्पी होगी, लेकिन मैंने छोड़ दिया और अब मैं उस समाधान पर ध्यान केंद्रित कर रहा हूं जिसमें मैं देखभाल की स्थिति का उपयोग करता हूं और कुंजीपटल से पहले और बाद में स्ट्रिंग की तुलना करता हूं। ध्यान दें कि यह समाधान SHIFT, CTRL, आदि जैसे कुंजियों के लिए बहुत अच्छी तरह से काम नहीं करता है –

1

मुझे सैमसंग एस 7 फोन पर एक ही समस्या थी। ईवेंट को कीडाउन से कीप्रेस पर बदलकर हल किया गया।

$("div, input").keypress(function (e) { 
    $("#keycode").html(e.which); 
}); 

jQuery इस सामग्री को सामान्य है, तो e.which https://stackoverflow.com/a/302161/259881

+0

इस कोशिश की और घटना मेरे लिए कभी भी नहीं निकाल दी गई (पैनासोनिक हार्डपैड)। –

10

सामान्य कुंजी दबाने घटना के अलावा और कुछ का उपयोग करने के Android डिवाइस में कीकोड नहीं देता कोई आवश्यकता नहीं है। इस पर पहले से ही एक बड़ा discussion रहा है।

यदि आप space bar या special chars के प्रेस को कैप्चर करना चाहते हैं, तो आप textInput ईवेंट का उपयोग कर सकते हैं।

$('input').on('textInput', e => { 
    var keyCode = e.originalEvent.data.charCodeAt(0); 
    // keyCode is ASCII of character entered. 
}) 

नोट: textInput, अक्षर, संख्या, बैकस्पेस पर शुरू हो रहा नहीं प्राप्त करता है में प्रवेश करने और कुछ अन्य चाबियाँ।

+0

इसने मेरी समस्या हल की। धन्यवाद @ इमामुद्दीन नसीम – Krunal

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