2012-07-11 17 views
8

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

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

क्या जावास्क्रिप्ट के साथ कीबोर्ड लेआउट बदलना संभव है ??

+2

हाँ आप कर सकते हैं, पर कब्जा प्रत्येक कीप्रेस और ई-चेक करें, फिर वर्णों को उस नए कीबोर्ड लेआउट के अनुरूप करने के लिए बदलें जिसे आप लक्षित कर रहे हैं। –

+0

आप जावास्क्रिप्ट के माध्यम से कुंजी बोर्ड लेआउट का पता/परिवर्तन नहीं कर सकते हैं। – Ramesh

+0

मुझे एक बड़ी समस्या है, विंडोज़ और लिनक्स में कुछ अलग-अलग फारसी कीबोर्ड लेआउट हैं और यह चरित्र प्रतिस्थापन को जटिल बनाता है। :( –

उत्तर

6

आप जे एस का उपयोग कर कीबोर्ड लेआउट बदलने में सक्षम नहीं होगा, लेकिन आप keydown घटना को पकड़ने और कुछ इस तरह से चरित्र की जगह ले सकता:

http://jsfiddle.net/SxdKZ/

$('textarea').on('keydown', function(e){ 

    console.log(e.keyCode); 
    if(e.keyCode == 90){ 
     e.preventDefault(); 
     $(this).append('y').focus(); 
    } 
    if(e.keyCode == 89){ 
     e.preventDefault(); 
     $(this).append('z').focus(); 
    } 

});​ 
+0

धन्यवाद लेकिन कुछ अलग हैं विंडोज़ और लिनक्स में पर्सियन कीबोर्ड लेआउट ताकि कुंजीकोड आपके कोड की तरह आसानी से थीम को प्रतिस्थापित करने के लिए विंडोज़ और लिनक्स में समान न हों :( –

+2

अच्छी तरह से ... आप 'navigator.platform' के साथ ओएस का पता लगा सकते हैं :) अगर यह है बस एक कैप्चर के लिए, http://mottie.github.com/Keyboard/ जैसे कुछ आसान समाधान हो सकता है? –