2012-04-11 13 views
5

में charecter मिलता है मैं jquery में कीडाउन घटना का उपयोग करता हूं, लेकिन समस्या यह इनपुट भाषा के लिए स्टेटलेस है। यह निर्धारित नहीं कर सकता कि इनपुट अंग्रेजी भाषा में है या हिब्रू या अरबी में है ...? यह केवल कुंजीकोड देता है, और मुझे चरित्र नहीं मिल सकता है।कीडाउन घटना में विभिन्न भाषा

क्या कोई समाधान है ??

+0

करने के लिए एक jQuery प्लगइन [एक ब्राउज़र की भाषा सेटिंग निर्धारित] नहीं है (https://github.com/dansingerman/jQuery-Browser-Language)। [यह] देखें (http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference) SO थ्रेड। फिर आप प्रत्येक लैंगेज में इच्छित चरित्र के लिए कीबोर्ड कोड का पता लगा सकते हैं। –

+0

मुझे लगता है कि प्लगइन समस्या का समाधान नहीं कर रहा है। उपयोगकर्ता टाइपिंग के दौरान भाषा बदल सकते हैं। इसलिए, मैं उपयोगकर्ता द्वारा सही चार इनपुट नहीं प्राप्त कर सकता। – assaqqaf

उत्तर

5

वास्तविक चरित्र निर्धारित करने के लिए, आपको keydown के बजाय keypress ईवेंट का उपयोग करना चाहिए। जबकि keydown आपको एक कुंजी कोड प्रदान करता है, keypress उपयोगकर्ता द्वारा दर्ज किया गया वर्ण इंगित करता है।

एक और अंतर यह है कि जब उपयोगकर्ता कुंजी दबाता है और रखता है, तो keydown ईवेंट केवल एक बार ट्रिगर होता है, लेकिन अलग-अलग keypress ईवेंट प्रत्येक डाले गए वर्ण के लिए ट्रिगर किए जाते हैं।

यहाँ keypress घटना का उपयोग करने का एक उदाहरण है:

<body> 
<form> 
    <input id="target" type="text" /> 
</form> 

<script src="http://api.jquery.com/scripts/events.js"></script> 
<script> 
    $("#target").keypress(function(event) { 
    var charCode = event.which; // charCode will contain the code of the character inputted 
    var theChar = String.fromCharCode(charCode); // theChar will contain the actual character 
    }); 
</script> 
</body> 
+1

यह मेरे लिए काम किया। यह कुंजीपटल लेआउट बदलने के बाद नार्वेजियन पात्रों और उसके बाद अरबी पात्रों को उठाया गया (पृष्ठ पर रहते हुए - बिना किसी रीलोड में)। [यहां एक जेएसफ़िल्ड है] (http://jsfiddle.net/wvywU/) –

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