यदि आप जावास्क्रिप्ट लॉक का उपयोग जावास्क्रिप्ट पर करते हैं, तो आप कैसे बताएंगे?


242

यदि आप जावास्क्रिप्ट लॉक का उपयोग जावास्क्रिप्ट पर करते हैं, तो आप कैसे बताएंगे?

एक चेतावनी हालांकि: मैंने इसे Google किया था और सबसे अच्छा समाधान जो मुझे मिल सकता था वह था कि onkeypressहर इनपुट के लिए एक घटना संलग्न करें, फिर हर बार जांचें कि क्या पत्र दबाया गया अपरकेस है, और यदि यह था, तो जांचें कि क्या शिफ्ट भी नीचे रखी गई थी। यदि ऐसा नहीं था, तो कैप्स लॉक ऑन होना चाहिए। यह वास्तव में गंदा लगता है और बस ... बेकार - निश्चित रूप से इस से बेहतर तरीका है?


198
मेरे उन लोगों के कई लोग इस तरह से उनके लिए पसंद करते हैं।
निकफ

7
@nicf: यदि यही कारण है, तो आप इनपुट पर regexp क्यों नहीं चलाते हैं और उनसे पूछते हैं कि अगर बहुत सारे ऊपरी मामले हैं, तो चिल्लाना बंद करें?
कुछ

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

23
लगता है कि ब्राउज़र को "कैप्स लॉक चालू है" चेतावनी तब लागू करनी चाहिए जब उपयोगकर्ता input type=passwordफ़ील्ड में टाइप करते हैं ( input type=emailक्रोम में ईमेल पते के सत्यापन के समान , आदि)
कुछ भी

8
उत्कृष्ट प्रश्न है, लेकिन स्वीकृत उत्तर 8 साल पुराना है। बेहतर प्रतिक्रिया यहां है
Mac

जवाबों:


95

आप इसे एक कोशिश दे सकते हैं .. एक काम करने का उदाहरण जोड़ा। जब इनपुट पर ध्यान केंद्रित किया जाता है, तो कैप लॉक को चालू करने से एलईडी लाल हो जाता है अन्यथा हरा हो जाता है। (मैक / लिनक्स पर परीक्षण नहीं किया गया)

नोट: दोनों संस्करण मेरे लिए काम कर रहे हैं। टिप्पणियों में रचनात्मक इनपुट के लिए धन्यवाद।

पुराने संस्करण: https://jsbin.com/mahenes/edit?js,output

इसके अलावा, यहां एक संशोधित संस्करण है (क्या कोई मैक पर परीक्षण कर सकता है और पुष्टि कर सकता है)

नया संस्करण: https://jsbin.com/xiconuv/edit?js,output

नया संस्करण:

function isCapslock(e){
    const IS_MAC = /Mac/.test(navigator.platform);

    const charCode      = e.charCode;
    const shiftKey      = e.shiftKey;

    if (charCode >= 97 && charCode <= 122){
      capsLock = shiftKey;
    } else if (charCode >= 65 && charCode <= 90 
               && !(shiftKey && IS_MAC)){
      capsLock = !shiftKey;
    }

    return capsLock;
}

पुराना संस्करण:

फ़ंक्शन कैस्पलॉक (e) {

e = (e) ? e : window.event;

var charCode = false;
if (e.which) {
    charCode = e.which;
} else if (e.keyCode) {
    charCode = e.keyCode;
}

var shifton = false;
if (e.shiftKey) {
    shifton = e.shiftKey;
} else if (e.modifiers) {
    shifton = !!(e.modifiers & 4);
}

if (charCode >= 97 && charCode <= 122 && shifton) {
    return true;
}

if (charCode >= 65 && charCode <= 90 && !shifton) {
    return true;
}

return false;

}

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

अपरकेस ऐज़ या 'Ä', 'ए', 'ए', लोअरकेस एज़ या 0-9 या 'ä', 'ö', 'ü'

उपरोक्त कुंजियाँ सिर्फ नमूना प्रतिनिधित्व हैं।


1
यह संभवतः सबसे अच्छा कार्यान्वयन नहीं है लेकिन जब मैंने इसे लिखा तो मैं इसे सरल रखने की कोशिश कर रहा था। मुझे लगता है कि एक ही तरीका है कि आप वास्तव में विभिन्न ब्राउज़रों के लिए कवर करने की आवश्यकता के साथ कर सकते हैं।

2
मैंने पाया है कि कीपैड (क्रोम में) के साथ इसका उपयोग करने से सभी कोड कैप के रूप में चुने जाते हैं। अगर मैं keypress का उपयोग करता हूं तो यह काम करता है।
टिम

2
सभी अंतरराष्ट्रीय पात्रों के लिए प्रत्येक संभावित चरित्र संयोजन को खोजने के लिए कुछ मामलों को याद करने के लिए बर्बाद किया गया है। केसिंग की जांच करने के बजाय टॉपर / लोअर केस मेथड का उपयोग करें।
खौफ

3
यह कहते हुए कि एक जवाब पूरी तरह से गलत-चारकोस और असिसी (!!!) - को उखाड़ सकता है। किसी ने कभी चेक नहीं किया ???
GameAlchemist

1
ध्यान दें कि मोज़िला के अनुसार , event.which को वेब मानकों से हटा दिया गया है।
वेरिज्म

130

JQuery में,

$('#example').keypress(function(e) { 
    var s = String.fromCharCode( e.which );
    if ( s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey ) {
        alert('caps is on');
    }
});

गलती से बचें, बैकस्पेस कुंजी की तरह, s.toLowerCase() !== sजरूरत है।


5
वास्तव में ... FromCharCode ने मुझे जांचने की आवश्यकता को समाप्त कर दिया। हालाँकि, यह ध्यान दिया जाना चाहिए कि कीडाउन और की-बोर्ड अलग-अलग चारकोड देते हैं, जो कि मैं पहली जगह में गलत हो गया था।
शी

4
-1 b यह केवल तभी काम करता है जब उन्होंने CAPS चालू होने पर शिफ्ट को दबाया नहीं है।

1
अगर कोई बूटस्ट्रैप के साथ एक लाइव उदाहरण देखना चाहता है, तो आप यहां bootply.com/91792 पर
गोविंदा राजभर

यह उत्तर मेरे लिए उपयोगी था। मैंने इस उत्तर में सशर्त सुधार किया , @D_N द्वारा उल्लिखित दोष के कारण, कि यह शिफ्ट दबाते समय काम नहीं करता है।
सेबासबीएम

105

आप KeyboardEventसबसे हाल के ब्राउज़रों पर कैप्स लॉक सहित कई कुंजियों का पता लगाने के लिए उपयोग कर सकते हैं ।

getModifierStateसमारोह के लिए राज्य प्रदान करेगा:

  • ऑल्ट
  • AltGraph
  • कैप्स लॉक
  • नियंत्रण
  • Fn (Android)
  • मेटा
  • न्यूमेरिकल लॉक
  • ओएस (विंडोज और लिनक्स)
  • ऊपर नीचे करना बंद
  • खिसक जाना

यह डेमो मोबाइल ( caniuse ) सहित सभी प्रमुख ब्राउज़रों में काम करता है ।

passwordField.addEventListener( 'keydown', function( event ) {
  var caps = event.getModifierState && event.getModifierState( 'CapsLock' );
  console.log( caps ); // true when you press the keyboard CapsLock key
});

6
मैंने इसका उत्तर एक द्विगुणित / समान प्रश्न पर दिया था और एक अन्य उपयोगकर्ता द्वारा अपडेट किया गया था कि अब इसमें क्रोम समर्थन है। मैंने इसकी पुष्टि की, इसलिए अब सभी प्रमुख ब्राउज़रों में काम करता है - और इस सवाल का सबसे अच्छा समाधान होना चाहिए
इयान क्लार्क

caniuse.com/#search=getModifierState का कहना है कि यह वर्तमान में सफारी (अभी तक?) पर समर्थित नहीं है। तो सभी प्रमुख ब्राउज़रों में अभी तक मामला नहीं हो सकता है।
जेन्स कोइज

2
यह अब सफारी में समर्थित है।
मॉटी

1
और फिर भी यह कैप्सलॉक प्रेस का पता लगाता है और जब उपयोगकर्ता फॉर्म में प्रवेश करता है तो सामान्य कैप्सलॉक स्थिति प्राप्त नहीं कर सकता ...
SparK

यह बंद स्थिति में कैप्स लॉक की को दबाने पर काम करने के अलावा लगता है । यह अगले प्रमुख प्रेस तक उस इनपुट को नहीं उठाता है। यह OS X के लिए Chrome पर था। निश्चित नहीं कि यह ऐसा कुछ है जो ब्राउज़र और OS पर फैला हो।
अशरफ स्लैमंग

24

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

document.onkeypress = function ( e ) {
  e = e || window.event;
  var s = String.fromCharCode( e.keyCode || e.which );
  if ( (s.toUpperCase() === s) !== e.shiftKey ) {
    // alert('caps is on')
  }
}

आप उस ब्राउज़र में कैप्चरिंग चरण के दौरान घटना को पकड़ सकते हैं जो इसका समर्थन करते हैं, लेकिन यह कुछ हद तक बेकार लगता है क्योंकि यह सभी ब्राउज़रों पर काम नहीं करेगा।

मैं वास्तव में कैप लॉक की स्थिति का पता लगाने के किसी अन्य तरीके के बारे में नहीं सोच सकता। जांच वैसे भी सरल है और यदि गैर-पता लगाने योग्य अक्षर टाइप किए गए, तो ठीक है ... तब पता लगाना आवश्यक नहीं था।

पिछले साल इस पर 24 तरीकों पर एक लेख था । काफी अच्छा है, लेकिन अंतरराष्ट्रीय चरित्र समर्थन ( toUpperCase()उस के आसपास पाने के लिए उपयोग ) का अभाव है ।


यह वास्तव में वही है जिसकी मुझे तलाश थी। यह लैटिन और सिरिलिक स्ट्रिंग्स के साथ काम करता है। धन्यवाद!
म्लादेन जेनजेटोविक

यह अच्छी तरह से काम करता है, लेकिन SPACE और अंक जैसे कुंजियाँ चेतावनी का संकेत देती हैं। जानिए (इसी तरह संक्षिप्त / सुरुचिपूर्ण) वर्कअराउंड?

1
इसके अलावा, यह अच्छा है कि आप अपूर्णता पर ध्यान दें, लेकिन यह अभी भी अधूरा है। निश्चित नहीं है कि इस विधि से इसे कैसे ठीक किया जाए।

11

कई मौजूदा उत्तर कैप्स लॉक के लिए जाँच करेंगे कि कब शिफ्ट को दबाया नहीं जाता है, लेकिन यदि आप शिफ्ट दबाते हैं और लोअरकेस प्राप्त करते हैं, या उसके लिए जाँच करेंगे, लेकिन कैप लॉक बंद होने की जाँच नहीं करेंगे, या उसके लिए जाँच करेंगे, लेकिन इसके लिए जाँच नहीं करेंगे लेकिन गैर-अल्फ़ा कुंजियों को 'बंद' माना जाएगा। यहां एक अनुकूलित jQuery समाधान है जो एक चेतावनी दिखाएगा यदि एक अल्फा कुंजी को कैप्स (शिफ्ट या कोई शिफ्ट) के साथ दबाया जाता है, तो चेतावनी को बंद कर देगा यदि कोई अल्फा कुंजी बिना कैप के दबाया जाता है, लेकिन चेतावनी को बंद नहीं करेगा या कब चालू करेगा नंबर या अन्य कुंजी दबाए जाते हैं।

$("#password").keypress(function(e) { 
    var s = String.fromCharCode( e.which );
    if ((s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey)|| //caps is on
      (s.toUpperCase() !== s && s.toLowerCase() === s && e.shiftKey)) {
        $("#CapsWarn").show();
    } else if ((s.toLowerCase() === s && s.toUpperCase() !== s && !e.shiftKey)||
      (s.toLowerCase() !== s && s.toUpperCase() === s && e.shiftKey)) { //caps is off
        $("#CapsWarn").hide();
    } //else upper and lower are both same (i.e. not alpha key - so do not hide message if already on but do not turn on if alpha keys not hit yet)
  });

11

JQuery में। यह फ़ायरफ़ॉक्स में ईवेंट हैंडलिंग को कवर करता है और अप्रत्याशित अपरकेस और लोअरकेस वर्ण दोनों के लिए जाँच करेगा। यह एक <input id="password" type="password" name="whatever"/>तत्व और id के साथ एक अलग तत्व ' capsLockWarning' को दर्शाता है जिसमें चेतावनी है जिसे हम दिखाना चाहते हैं (लेकिन अन्यथा छिपा हुआ है)।

$('#password').keypress(function(e) {
    e = e || window.event;

    // An empty field resets the visibility.
    if (this.value === '') {
        $('#capsLockWarning').hide();
        return;
    }

    // We need alphabetic characters to make a match.
    var character = String.fromCharCode(e.keyCode || e.which);
    if (character.toUpperCase() === character.toLowerCase()) {
        return;
    }

    // SHIFT doesn't usually give us a lowercase character. Check for this
    // and for when we get a lowercase character when SHIFT is enabled. 
    if ((e.shiftKey && character.toLowerCase() === character) ||
        (!e.shiftKey && character.toUpperCase() === character)) {
        $('#capsLockWarning').show();
    } else {
        $('#capsLockWarning').hide();
    }
});

मुझे यकीन नहीं है कि क्यों, लेकिन यह विधि पहले कीबोर्ड (केवल क्रोम पर परीक्षण) पर काम नहीं करती है।

क्या यह खाली क्षेत्र छिपाने का मुद्दा हो सकता है? मुझे वह ठीक से काम करने के लिए नहीं मिला, कम से कम क्रोम में। यह स्वचालित रूप से कई अन्य ब्राउज़रों में होता है (कम से कम मेरे संस्करण में, नीचे) क्योंकि बैकस्पेस रिक्त स्थान की गणना करता है और एमएसएसजी को खाली करता है।

नोट : जैसा कि आपने यहां सही ढंग से उपयोग किया है, आपको keypressइनपुट पर अलग-अलग केसिंग का उपयोग करने के लिए घटना का उपयोग करने की आवश्यकता है , क्योंकि दोनों keydownऔर keyupहमेशा अपरकेस वापस आएंगे । नतीजतन, यह कैप्सलॉक कुंजी को आग नहीं देगा ... यदि आप के साथ संयोजन करने का इरादा रखते हैंe.originalEvent.getModifierState('CapsLock')
काइलमिट

6

यहां शीर्ष उत्तर मेरे लिए कुछ कारणों से काम नहीं करते थे (एक मृत लिंक और एक अधूरा समाधान के साथ संयुक्त टिप्पणी)। इसलिए मैंने कुछ घंटे बिताए और सभी को बाहर करने की कोशिश कर रहा था और सबसे अच्छा हो सकता था: यहाँ मेरा है, जिसमें jQuery और गैर-jQuery शामिल हैं।

jQuery

ध्यान दें कि jQuery इवेंट ऑब्जेक्ट को सामान्य करता है इसलिए कुछ चेक गायब हैं। मैंने इसे सभी पासवर्ड क्षेत्रों में भी सीमित कर दिया है (क्योंकि इसकी आवश्यकता का सबसे बड़ा कारण है) और एक चेतावनी संदेश जोड़ा। यह क्रोम, मोज़िला, ओपेरा और IE6-8 में परीक्षण किया गया है। जब सभी नंबर या स्पेस दबाए जाते हैं, तो सभी कैपलॉक को स्थिर और कैच करता है।

/* check for CAPS LOCK on all password fields */
$("input[type='password']").keypress(function(e) {

    var $warn = $(this).next(".capsWarn"); // handle the warning mssg
    var kc = e.which; //get keycode
    var isUp = (kc >= 65 && kc <= 90) ? true : false; // uppercase
    var isLow = (kc >= 97 && kc <= 122) ? true : false; // lowercase
    // event.shiftKey does not seem to be normalized by jQuery(?) for IE8-
    var isShift = ( e.shiftKey ) ? e.shiftKey : ( (kc == 16) ? true : false ); // shift is pressed

    // uppercase w/out shift or lowercase with shift == caps lock
    if ( (isUp && !isShift) || (isLow && isShift) ) {
        $warn.show();
    } else {
        $warn.hide();
    }

}).after("<span class='capsWarn error' style='display:none;'>Is your CAPSLOCK on?</span>");

बिना jQuery के

अन्य jQuery- कम समाधानों में से कुछ में IE कमियां थीं। @ ज़प्पा ने इसे थपथपाया।

document.onkeypress = function ( e ) {
    e = (e) ? e : window.event;

    var kc = ( e.keyCode ) ? e.keyCode : e.which; // get keycode
    var isUp = (kc >= 65 && kc <= 90) ? true : false; // uppercase
    var isLow = (kc >= 97 && kc <= 122) ? true : false; // lowercase
    var isShift = ( e.shiftKey ) ? e.shiftKey : ( (kc == 16) ? true : false ); // shift is pressed -- works for IE8-

    // uppercase w/out shift or lowercase with shift == caps lock
    if ( (isUp && !isShift) || (isLow && isShift) ) {
        alert("CAPSLOCK is on."); // do your thing here
    } else {
        // no CAPSLOCK to speak of
    }

}

नोट: @Borgar, @Joe Liversedge, और @Zappa, और @Pavel Azanov द्वारा विकसित प्लगइन की जाँच करें, जो मैंने कोशिश नहीं की है लेकिन एक अच्छा विचार है। अगर किसी को ए-ज़-ज़ से परे के दायरे का विस्तार करने का तरीका पता है, तो कृपया संपादित करें। साथ ही, इस प्रश्न के jQuery संस्करण को डुप्लिकेट के रूप में बंद कर दिया गया है, इसलिए मैं यहां दोनों पोस्ट कर रहा हूं।


4
एक अच्छे समाधान में हमेशा अंग्रेजी अक्षरों AZ के बाहर के अक्षरों का समर्थन शामिल होना चाहिए। कोई भी अन्य समाधान लगभग सभी गैर-अंग्रेजी भाषाओं का अपमान है।
विस्मयकारी

6

हम getModifierStateकैप्स लॉक की जांच करने के लिए उपयोग करते हैं , यह केवल एक माउस या कीबोर्ड ईवेंट का सदस्य है इसलिए हम ए का उपयोग नहीं कर सकते हैं onfocus। पासवर्ड फ़ील्ड हासिल करने के लिए सबसे आम दो तरीके हैं जो एक क्लिक या एक टैब के साथ हैं। हम onclickइनपुट के भीतर माउस क्लिक के लिए जाँच करने के लिए उपयोग करते हैं , और हम onkeyupपिछले इनपुट क्षेत्र से एक टैब का पता लगाने के लिए उपयोग करते हैं । यदि पासवर्ड फ़ील्ड पृष्ठ पर एकमात्र फ़ील्ड है और ऑटो-फ़ोकस है, तो पहली कुंजी जारी होने तक घटना नहीं होगी, जो ठीक है, लेकिन आदर्श नहीं है, आप वास्तव में चाहते हैं कि कैप्स लॉक टूल युक्तियां एक बार पासवर्ड फ़ील्ड हासिल करने के लिए प्रदर्शित करें। फोकस, लेकिन ज्यादातर मामलों के लिए यह समाधान एक आकर्षण की तरह काम करता है।

एचटीएमएल

<input type="password" id="password" onclick="checkCapsLock(event)" onkeyup="checkCapsLock(event)" />

जे एस

function checkCapsLock(e) {
  if (e.getModifierState("CapsLock")) {
    console.log("Caps");
  }
}

https://codepen.io/anon/pen/KxJwjq


उत्तम! मेरे कार्यान्वयन में सरल, संक्षिप्त और निर्दोष।
Sirtastic

1
@ रेयान: योगदान के लिए धन्यवाद! यह कोड का एक अच्छा, साफ उदाहरण है, हालांकि मैं आपका उत्तर बताना चाहूंगा कि यह मूल रूप से समान है बताना से 2015 से मॉटी का जवाब है, जहां आप दोनों काम करते हैंevent.getModifierState("CapsLock").
मैक

5

मुझे पता है कि यह एक पुराना विषय है लेकिन मुझे लगा कि अगर यह दूसरों की मदद करता है तो मैं इसे वापस खिलाऊंगा। प्रश्न के उत्तर में से कोई भी IE8 में काम नहीं करता है। लेकिन मुझे यह कोड IE8 में काम करने वाला मिला। (आईई 8 से नीचे कुछ भी परीक्षण नहीं किया गया) यदि आवश्यक हो तो इसे आसानी से jQuery के लिए संशोधित किया जा सकता है।

function capsCheck(e,obj){ 
    kc = e.keyCode?e.keyCode:e.which;  
    sk = e.shiftKey?e.shiftKey:((kc == 16)?true:false);  
    if(((kc >= 65 && kc <= 90) && !sk)||((kc >= 97 && kc <= 122) && sk)){
        document.getElementById('#'+obj.id).style.visibility = 'visible';
    } 
    else document.getElementById('#'+obj.id).style.visibility = 'hidden';
}

और इस तरह के onkeypress घटना के माध्यम से समारोह कहा जाता है:

<input type="password" name="txtPassword" onkeypress="capsCheck(event,this);" />
<div id="capsWarningDiv" style="visibility:hidden">Caps Lock is on.</div> 

IE8- फिक्स के लिए धन्यवाद। इसे मेरे reworked उत्तर (नीचे) में शामिल करें। हालांकि यह ठोस है।

5

यह एक ऐसा समाधान है जो लिखते समय राज्य की जाँच करने के अलावा, हर बार चेतावनी संदेश भी देता है Caps Lock कुंजी दबाया जाता है (हर सीमा के साथ)।

यह AZ श्रेणी के बाहर गैर-अंग्रेजी अक्षरों का भी समर्थन करता है, क्योंकि यह स्ट्रिंग चरित्र की जाँच करता है toUpperCase()और toLowerCase()इसके बजाय वर्ण श्रेणी के विरुद्ध जाँच करता है।

$(function(){
  //Initialize to hide caps-lock-warning
  $('.caps-lock-warning').hide();

  //Sniff for Caps-Lock state
  $("#password").keypress(function(e) {
    var s = String.fromCharCode( e.which );
    if((s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey)||
       (s.toUpperCase() !== s && s.toLowerCase() === s && e.shiftKey)) {
      this.caps = true; // Enables to do something on Caps-Lock keypress
      $(this).next('.caps-lock-warning').show();
    } else if((s.toLowerCase() === s && s.toUpperCase() !== s && !e.shiftKey)||
              (s.toLowerCase() !== s && s.toUpperCase() === s && e.shiftKey)) {
      this.caps = false; // Enables to do something on Caps-Lock keypress
      $(this).next('.caps-lock-warning').hide();
    }//else else do nothing if not a letter we can use to differentiate
  });

  //Toggle warning message on Caps-Lock toggle (with some limitation)
  $(document).keydown(function(e){
    if(e.which==20){ // Caps-Lock keypress
      var pass = document.getElementById("password");
      if(typeof(pass.caps) === 'boolean'){
        //State has been set to a known value by keypress
        pass.caps = !pass.caps;
        $(pass).next('.caps-lock-warning').toggle(pass.caps);
      }
    }
  });

  //Disable on window lost focus (because we loose track of state)
  $(window).blur(function(e){
    // If window is inactive, we have no control on the caps lock toggling
    // so better to re-set state
    var pass = document.getElementById("password");
    if(typeof(pass.caps) === 'boolean'){
      pass.caps = null;
      $(pass).next('.caps-lock-warning').hide();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="password" id="password" />
<span class="caps-lock-warning" title="Caps lock is on!">CAPS</span>

ध्यान दें कि यदि हम Caps Lockकुंजी दबाए जाने से पहले कैप्स लॉक की स्थिति जानते हैं तो कैप लॉक टॉगलिंग का अवलोकन करना उपयोगी है। वर्तमान कैप्स लॉक स्थिति को capsपासवर्ड तत्व पर जावास्क्रिप्ट संपत्ति के साथ रखा जाता है । यह पहली बार सेट होता है जब हमारे पास कैप्स लॉक स्थिति का सत्यापन होता है जब उपयोगकर्ता एक पत्र दबाता है जो ऊपरी या निचले मामले में हो सकता है। यदि विंडो फ़ोकस खो देती है, तो हम अब कैप लॉक टॉगलिंग का निरीक्षण नहीं कर सकते हैं, इसलिए हमें अज्ञात स्थिति में रीसेट करने की आवश्यकता है।


2
अच्छा विचार। यदि आप उपयोगकर्ता को चेतावनी दिखाने जा रहे हैं कि कैप्स लॉक चालू है, तो कैप लॉक लॉक अक्षम होने पर तुरंत उस चेतावनी को बंद करना एक अच्छा विचार है, अन्यथा आप उपयोगकर्ता को भ्रमित कर सकते हैं।
Ajedi32

3

हाल ही में hashcode.com पर इसी तरह का प्रश्न था , और मैंने इससे निपटने के लिए jQuery प्लगइन बनाया। यह संख्याओं पर कैप्स लॉक की मान्यता का भी समर्थन करता है। (मानक जर्मन कीबोर्ड लेआउट कैप्स लॉक पर संख्याओं पर प्रभाव पड़ता है)।

आप यहां नवीनतम संस्करण देख सकते हैं: jquery.capsChecker


3

ट्विटर बूटस्ट्रैप के साथ jQuery के लिए

निम्नलिखित वर्णों के लिए बंद कैप की जाँच करें:

अपरकेस ऐज़ या 'Ä', '' ',' Ü ','! ',' '', '' ',' $ ','% ',' & ',' / ',' (',') '' , '=', ':', ';', '*', ''

लोअरकेस aZ या 0-9 या 'ä', 'ö', 'ü', '।', ',', '+', '#'

/* check for CAPS LOCK on all password fields */
$("input[type='password']").keypress(function(e) {
    var kc = e.which; // get keycode

    var isUpperCase = ((kc >= 65 && kc <= 90) || (kc >= 33 && kc <= 34) || (kc >= 36 && kc <= 39) || (kc >= 40 && kc <= 42) || kc == 47 || (kc >= 58 && kc <= 59) || kc == 61 || kc == 63 || kc == 167 || kc == 196 || kc == 214 || kc == 220) ? true : false; // uppercase A-Z or 'Ä', 'Ö', 'Ü', '!', '"', '§', '$', '%', '&', '/', '(', ')', '=', ':', ';'
    var isLowerCase = ((kc >= 97 && kc <= 122) || (kc >= 48 && kc <= 57) || kc == 35 || (kc >= 43 && kc <= 44) || kc == 46 || kc == 228 || kc == 223 || kc == 246 || kc == 252) ? true : false; // lowercase a-Z or 0-9 or 'ä', 'ö', 'ü', '.', ','

    // event.shiftKey does not seem to be normalized by jQuery(?) for IE8-
    var isShift = (e.shiftKey) ? e.shiftKey : ((kc == 16) ? true : false); // shift is pressed

    // uppercase w/out shift or lowercase with shift == caps lock
    if ((isUpperCase && !isShift) || (isLowerCase && isShift)) {
        $(this).next('.form-control-feedback').show().parent().addClass('has-warning has-feedback').next(".capsWarn").show();
    } else {
        $(this).next('.form-control-feedback').hide().parent().removeClass('has-warning has-feedback').next(".capsWarn").hide();
    }
}).after('<span class="glyphicon glyphicon-warning-sign form-control-feedback" style="display:none;"></span>').parent().after("<span class='capsWarn text-danger' style='display:none;'>Is your CAPSLOCK on?</span>");

लाइव डेमो jsfiddle पर


3

एक वैरिएबल जो कैप्स लॉक स्टेट दिखाता है:

let isCapsLockOn = false;

document.addEventListener( 'keydown', function( event ) {
  var caps = event.getModifierState && event.getModifierState( 'CapsLock' );
  if(isCapsLockOn !== caps) isCapsLockOn = caps;
});

document.addEventListener( 'keyup', function( event ) {
  var caps = event.getModifierState && event.getModifierState( 'CapsLock' );
  if(isCapsLockOn !== caps) isCapsLockOn = caps;
});

सभी ब्राउज़रों पर काम करता है => canIUse


1
एक पुराने प्रश्न का उत्तर-अप-टू-डेट देने के लिए अपग्रेड किया गया। आप "आधुनिक ब्राउज़रों (2017->) के लिए" या "2017 के लिए अपडेट" के लिए कुछ ऐसा कह सकते हैं जैसे हेडलाइन जोड़ना चाहते हैं
eon

3

@ User110902 द्वारा पोस्ट किया गया यह jQuery- आधारित उत्तर मेरे लिए उपयोगी था। हालाँकि, मैंने @B_N की टिप्पणी में उल्लिखित एक दोष को रोकने के लिए इसे थोड़ा सुधार दिया: शिफ्ट प्रेस करते समय यह कैप्सलॉक का पता लगाने में विफल रहा:

$('#example').keypress(function(e) { 
    var s = String.fromCharCode( e.which );
    if (( s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey )
    ||  ( s.toLowerCase() === s && s.toUpperCase() !== s && e.shiftKey )) {
        alert('caps is on');
    }
});

इस तरह यह Shift को दबाते हुए भी काम करेगा।


2

यह कोड कैप लॉक का पता लगाता है कि कोई मामला नहीं है या यदि शिफ्ट कुंजी दबाया गया है:

$('#password').keypress(function(e) { 
    var s = String.fromCharCode( e.which );
    if ( (s.toUpperCase() === s && !e.shiftKey) || 
             (s.toLowerCase() === s && e.shiftKey) ) {
        alert('caps is on');
    }
});

यह फ़ायरफ़ॉक्स पर ऊपरी मामले के रूप में पता लगाने के लिए स्थान और बैकस्पेस का कारण बनता है।
एड्रियन रोसका

2

मैंने कैप्सलॉक नामक एक पुस्तकालय लिखा जिसका जो वास्तव में वही करती है जो आप करना चाहते हैं।

बस इसे अपने वेब पृष्ठों पर शामिल करें:

<script src="https://rawgit.com/aaditmshah/capsLock/master/capsLock.js"></script>

फिर इसका उपयोग इस प्रकार करें:

alert(capsLock.status);

capsLock.observe(function (status) {
    alert(status);
});

डेमो देखें: http://jsfiddle.net/3EXMd/

जब आप कैप्स लॉक कुंजी दबाते हैं तो स्थिति अपडेट हो जाती है। यह केवल कैप्स लॉक कुंजी की सही स्थिति निर्धारित करने के लिए Shift कुंजी हैक का उपयोग करता है। प्रारंभ में स्थिति यह है false। तो खबरदार।


यह वास्तव में सरल समाधान है। लेकिन यह बग है कि यदि पृष्ठ लॉक होने पर कैप्स लॉक चालू है, तो "कैप्सलॉक" ऑब्जेक्ट गलत स्थिति (बंद) से शुरू होता है।
रिक

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

2

अभी तक एक और संस्करण, स्पष्ट और सरल, शिफ्ट किए गए कैप्सलॉक को संभालता है, और ऐसा नहीं है कि मुझे लगता है कि असीसी को विवश किया गया है:

document.onkeypress = function (e)
{
    e = e || window.event;
    if (e.charCode === 0 || e.ctrlKey || document.onkeypress.punctuation.indexOf(e.charCode) >= 0)
        return;
    var s = String.fromCharCode(e.charCode); // or e.keyCode for compatibility, but then have to handle MORE non-character keys
    var s2 = e.shiftKey ? s.toUpperCase() : s.toLowerCase();
    var capsLockOn = (s2 !== s);
    document.getElementById('capslockWarning').style.display = capsLockOn ? '' : 'none';
}
document.onkeypress.punctuation = [33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,91,92,93,94,95,96,123,124,125,126];

संपादित करें: कैप्सलॉकऑन का सेंस उल्टा था, दोह, नियत।

# 2 संपादित करें: इसे कुछ और जाँचने के बाद, मैंने कुछ बदलाव किए हैं, दुर्भाग्य से थोड़ा और विस्तृत कोड है, लेकिन यह उचित रूप से अधिक कार्यों को संभालता है।

  • E.CCCode के बजाय e.charCode का उपयोग करना और 0 मानों की जाँच करना किसी दिए गए भाषा या वर्ण विशेष के लिए कुछ भी कोडिंग किए बिना, बहुत से गैर-चरित्र वाले कुंजीपटों को छोड़ देता है। मेरी समझ से, यह थोड़ा कम संगत है, इसलिए पुराने, गैर-मुख्यधारा या मोबाइल ब्राउज़र इस कोड की उम्मीद के अनुसार व्यवहार नहीं कर सकते हैं, लेकिन यह मेरी स्थिति के लिए वैसे भी है।

  • ज्ञात विराम चिह्नों की सूची के खिलाफ जाँच करने से उन्हें झूठी नकारात्मक के रूप में देखा जा सकता है, क्योंकि वे कैप लॉक से प्रभावित नहीं होते हैं। इसके बिना, कैप लॉक इंडिकेटर तब छिप जाता है जब आप उन विराम चिह्नों को टाइप करते हैं। एक शामिल किए गए के बजाय एक बहिष्कृत सेट को निर्दिष्ट करके, इसे विस्तारित वर्णों के साथ अधिक संगत होना चाहिए। यह सबसे बदसूरत, विशेष-कैसिएंट बिट है, और कुछ मौका है कि गैर-पश्चिमी भाषाओं में समस्या होने के लिए अलग-अलग विराम चिह्न और / या विराम चिह्न कोड हैं, लेकिन फिर से यह आईएमओ के लायक है, कम से कम मेरी स्थिति के लिए।


2

प्रतिक्रिया

onKeyPress(event) { 
        let self = this;
        self.setState({
            capsLock: isCapsLockOn(self, event)
        });
    }

    onKeyUp(event) { 
        let self = this;
        let key = event.key;
        if( key === 'Shift') {
            self.shift = false;
        }
    }

    <div>
     <input name={this.props.name} onKeyDown={(e)=>this.onKeyPress(e)} onKeyUp={(e)=>this.onKeyUp(e)} onChange={this.props.onChange}/>
                {this.capsLockAlert()}
</div>

function isCapsLockOn(component, event) {
        let key = event.key;
        let keyCode = event.keyCode;

        component.lastKeyPressed = key;

        if( key === 'Shift') {
            component.shift = true;
        } 

        if (key === 'CapsLock') {
            let newCapsLockState = !component.state.capsLock;
            component.caps = newCapsLockState;
            return newCapsLockState;
        } else {
            if ((component.lastKeyPressed !== 'Shift' && (key === key.toUpperCase() && (keyCode >= 65 && keyCode <= 90)) && !component.shift) || component.caps ) {
                component.caps = true;
                return true;
            } else {
                component.caps = false;
                return false;
            }
        }
    }

1

@Joshuahedlund के जवाब के आधार पर क्योंकि यह मेरे लिए ठीक था।

मैंने कोड को एक फ़ंक्शन बनाया ताकि इसे पुन: उपयोग किया जा सके, और इसे मेरे मामले में शरीर से जोड़ा जा सके। इसे पासवर्ड फील्ड से तभी जोड़ा जा सकता है जब आप चाहें।

<html>
<head>
<script language="javascript" type="text/javascript" >
function checkCapsLock(e, divId) { 
    if(e){
        e = e;
    } else {
        e = window.event;
    }
    var s = String.fromCharCode( e.which );
    if ((s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey)|| //caps is on
      (s.toUpperCase() !== s && s.toLowerCase() === s && e.shiftKey)) {
        $(divId).style.display='block';
    } else if ((s.toLowerCase() === s && s.toUpperCase() !== s && !e.shiftKey)||
      (s.toLowerCase() !== s && s.toUpperCase() === s && e.shiftKey)) { //caps is off
        $(divId).style.display='none';
   } //else upper and lower are both same (i.e. not alpha key - so do not hide message if already on but do not turn on if alpha keys not hit yet)
 }
</script>
<style>    
.errorDiv {
    display: none;
    font-size: 12px;
    color: red;
    word-wrap: break-word;
    text-overflow: clip;
    max-width: 200px;
    font-weight: normal;
}
</style>
</head>
<body  onkeypress="checkCapsLock(event, 'CapsWarn');" >
...
<input name="password" id="password" type="password" autocomplete="off">
<div id="CapsWarn" class="errorDiv">Capslock is ON !</div>
...
</body>
</html>

1

Mottie's और ऊपर दिए गए डिएगो विएरा का जवाब है कि हमने क्या उपयोग किया है और अब स्वीकार किया जाना चाहिए। हालाँकि, इससे पहले कि मैं इसे देखा, मैं इस छोटे जावास्क्रिप्ट समारोह लिखा है कि चरित्र कोड पर भरोसा नहीं करता है ...

var capsLockIsOnKeyDown = {shiftWasDownDuringLastChar: false,
  capsLockIsOnKeyDown: function(event) {
    var eventWasShiftKeyDown = event.which === 16;
    var capsLockIsOn = false;
    var shifton = false;
    if (event.shiftKey) {
        shifton = event.shiftKey;
    } else if (event.modifiers) {
        shifton = !!(event.modifiers & 4);
    }

    if (event.target.value.length > 0 && !eventWasShiftKeyDown) {
      var lastChar = event.target.value[event.target.value.length-1];
      var isAlpha = /^[a-zA-Z]/.test(lastChar);

      if (isAlpha) {
        if (lastChar.toUpperCase() === lastChar && lastChar.toLowerCase() !== lastChar
          && !event.shiftKey && !capsLockIsOnKeyDown.shiftWasDownDuringLastChar) {
          capsLockIsOn =  true;
        }
      }
    }
    capsLockIsOnKeyDown.shiftWasDownDuringLastChar = shifton;
    return capsLockIsOn;
  }
}

फिर इसे एक इवेंट हैंडलर में बुलाएं capsLockIsOnKeyDown.capsLockIsOnKeyDown(event)

लेकिन फिर, हमने @Mottie s और @Diego Vieira की प्रतिक्रिया का उपयोग करते हुए समाप्त कर दिया


0

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

अगर हम झूठे लौटते हैं; तब वर्तमान चार्ट टेक्स्ट पेज पर संलग्न नहीं होगा।

$('#password').keypress(function(e) { 
    // e.keyCode is not work in FF, SO, it will
    // automatically get the value of e.which.  
    var s = String.fromCharCode( e.keyCode || e.which );
    if ( s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey ) {
            alert('caps is on');
            return false;
    }
else  if ( s.toUpperCase() !== s) {
            alert('caps is on and Shiftkey pressed');
            return false;
    }
});

कैप लॉक लॉक होने पर ही काम करता है। यदि कैप्स लॉक बंद है, तो यह अभी भी रिपोर्ट करता है कि कैप्स लॉक चालू है लेकिन शिफ्ट की के साथ दबाया गया है (दोनों शिफ्ट की के साथ वास्तव में दबाया गया है या नहीं)।
विस्मयकारी

ठीक है कि @awe
नागा हरीश एम

0

समझने में आसान में इस सरल कोड की कोशिश करो

यह स्क्रिप्ट है

 <script language="Javascript">
function capLock(e){
 kc = e.keyCode?e.keyCode:e.which;
 sk = e.shiftKey?e.shiftKey:((kc == 16)?true:false);
 if(((kc >= 65 && kc <= 90) && !sk)||((kc >= 97 && kc <= 122) && sk))
  document.getElementById('divMayus').style.visibility = 'visible';
 else
   document.getElementById('divMayus').style.visibility = 'hidden';
}
</script>

और एच.टी.एम.एल.

<input type="password" name="txtPassword" onkeypress="capLock(event)" />
 <div id="divMayus" style="visibility:hidden">Caps Lock is on.</div> 

0

इस कोड का उपयोग करने का प्रयास करें।

$('selectorOnTheInputTextBox').keypress(function (e) {
        var charCode = e.target.value.charCodeAt(e.target.value.length - 1)
        var capsOn = 
            e.keyCode && 
            !e.shiftKey &&
            !e.ctrlKey &&
            charCode >= 65 && 
            charCode <= 90;

            if (capsOn) 
               //action if true
            else
               //action if false
});

शुभ लाभ :)


0

आप इस स्क्रिप्ट का उपयोग कर सकते हैं । भले ही Shift कुंजी दबाया गया हो, लेकिन यह विंडोज पर अच्छी तरह से काम करना चाहिए लेकिन अगर ऐसा है तो यह मैक ओएस पर काम नहीं करेगा।


0

यहाँ jquery ui का उपयोग करते हुए एक कस्टम jquery प्लगइन है, जो इस पृष्ठ पर सभी अच्छे विचारों से बना है और टूलटिप विजेट का लाभ उठाता है। कैप्स लॉक संदेश ऑटो सभी पासवर्ड बॉक्सों पर लागू होता है और इसके लिए आपके वर्तमान HTML में कोई बदलाव नहीं करना पड़ता है।

कोड में कस्टम प्लग ...

(function ($) {
    $.fn.capsLockAlert = function () {
        return this.each(function () {
            var capsLockOn = false;
            var t = $(this);
            var updateStatus = function () {
                if (capsLockOn) {
                    t.tooltip('open');
                } else {
                    t.tooltip('close');
                }
            }
            t.tooltip({
                items: "input",
                position: { my: "left top", at: "left bottom+10" },
                open: function (event, ui) {
                    ui.tooltip.css({ "min-width": "100px", "white-space": "nowrap" }).addClass('ui-state-error');
                    if (!capsLockOn) t.tooltip('close');
                },
                content: function () {
                    return $('<p style="white-space: nowrap;"/>')
                        .append($('<span class="ui-icon ui-icon-alert" style="display: inline-block; margin-right: 5px; vertical-align: text-top;" />'))
                        .append('Caps Lock On');
                }
            })
            .off("mouseover mouseout")
            .keydown(function (e) {
                if (e.keyCode !== 20) return;
                capsLockOn = !capsLockOn;
                updateStatus();
            })
            .keypress(function (e) {
                var kc = e.which; //get keycode

                var isUp = (kc >= 65 && kc <= 90) ? true : false; // uppercase
                var isLow = (kc >= 97 && kc <= 122) ? true : false; // lowercase
                if (!isUp && !isLow) return; //This isn't a character effected by caps lock

                // event.shiftKey does not seem to be normalized by jQuery(?) for IE8-
                var isShift = (e.shiftKey) ? e.shiftKey : ((kc === 16) ? true : false); // shift is pressed

                // uppercase w/out shift or lowercase with shift == caps lock
                if ((isUp && !isShift) || (isLow && isShift)) {
                    capsLockOn = true;
                } else {
                    capsLockOn = false;
                }
                updateStatus();
            });
        });
    };
})(jQuery);

सभी पासवर्ड तत्वों पर लागू करें ...

$(function () {
    $(":password").capsLockAlert();
});

0

जावास्क्रिप्ट कोड

<script type="text/javascript">
   function isCapLockOn(e){
   kc = e.keyCode?e.keyCode:e.which;
   sk = e.shiftKey?e.shiftKey:((kc == 16)?true:false);
   if(((kc >= 65 && kc <= 90) && !sk)||((kc >= 97 && kc <= 122) && sk))
       document.getElementById('alert').style.visibility = 'visible';
   else
       document.getElementById('alert').style.visibility = 'hidden';
   }
</script>

हमें अब Html का उपयोग करके इस स्क्रिप्ट को जोड़ना होगा

<input type="password" name="txtPassword" onkeypress="isCapLockOn(event)" />
<div id="alert" style="visibility:hidden">Caps Lock is on.</div> 

0

यह मुझे पता है कि देर हो चुकी है, लेकिन यह किसी और की मदद कर सकता है।

तो यहाँ मेरा सबसे सरल समाधान है (तुर्की वर्णों के साथ);

function (s,e)
{
    var key = e.htmlEvent.key;

    var upperCases = 'ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZXWQ';
    var lowerCases = 'abcçdefgğhıijklmnoöprsştuüvyzxwq';
    var digits = '0123456789';

    if (upperCases.includes(key))
    {
        document.getElementById('spanLetterCase').innerText = '[A]';
    }

    else if (lowerCases.includes(key))
    {
        document.getElementById('spanLetterCase').innerText = '[a]';
    }

    else if (digits.includes(key))
    {
        document.getElementById('spanLetterCase').innerText = '[1]';
    }

    else
    {
        document.getElementById('spanLetterCase').innerText = '';
    }
}

0

इसलिए मुझे यह पृष्ठ मिला और वास्तव में मुझे जो समाधान मिला, वह मुझे पसंद नहीं आया, इसलिए मैंने इसे खोज निकाला और इसे आप सभी के लिए प्रस्तुत कर रहा हूं। मेरे लिए, यह केवल तभी मायने रखता है जब मैं पत्र लिख रहा हूं, तो कैप्स लॉक चालू है। इस कोड ने मेरे लिए समस्या हल कर दी। इसकी त्वरित और आसान और आपको जब भी आवश्यकता हो, संदर्भ के लिए एक कैप्सन वेरिएबल देता है।

let capsIsOn=false;
let capsChecked=false;

let capsCheck=(e)=>{
    let letter=e.key;
    if(letter.length===1 && letter.match(/[A-Za-z]/)){
        if(letter!==letter.toLowerCase()){
          capsIsOn=true;
          console.log('caps is on');
        }else{
          console.log('caps is off');
        }
        capsChecked=true;
        window.removeEventListener("keyup",capsCheck);
    }else{
      console.log("not a letter, not capsCheck was performed");
    }

}

window.addEventListener("keyup",capsCheck);

window.addEventListener("keyup",(e)=>{
  if(capsChecked && e.keyCode===20){
    capsIsOn=!capsIsOn;
  }
});


-1

जब आप टाइप करते हैं, यदि कैपलॉक चालू है, तो यह स्वचालित रूप से वर्तमान चार्ट को लोअरकेस में बदल सकता है। इस तरह से भले ही कैपलॉक चालू हो, यह वर्तमान पृष्ठ पर ऐसा व्यवहार नहीं करेगा। अपने उपयोगकर्ताओं को सूचित करने के लिए आप एक पाठ प्रदर्शित कर सकते हैं जिसमें कहा जा सकता है कि कैपलॉक चालू है, लेकिन यह कि फॉर्म प्रविष्टियाँ परिवर्तित हैं।


हाँ, लेकिन तब आपको कैप्स लॉक का पता लगाना होगा। इसके अलावा, इसका मतलब है कि आप पासवर्ड में अपरकेस को अस्वीकार कर रहे हैं, जो उप-इष्टतम है।
डेव लेपमैन

यह पता लगाने के लिए कि क्या कैप्स लॉक चालू है, आपको यह देखना होगा कि आपके द्वारा भेजे गए चार्ट का लोअरकेस संस्करण इससे अलग है या नहीं, यदि यह है -> कैप्स लॉक, तो «चेतावनी: आप कैप्स लॉक का उपयोग कर रहे हैं, लेकिन हमारा सिस्टम इसमें परिवर्तित हो रहा है कम मामला », मुझे लगता है कि जावास्क्रिप्ट का मतलब सभी के बाद कैप्स लॉक का पता लगाने के लिए नहीं है (चेकिंग कैप्स लॉक को एक सिस्टम एक्सेस की आवश्यकता है), आपको उस रास्ते का पता लगाना होगा जो आपकी आवश्यकता के लिए सबसे उपयुक्त हो
Frederik.L

-1

कैप्स-लॉक का पता लगाने के लिए बहुत सरल उपाय है:

function isCapsLockOn(event) {
    var s = String.fromCharCode(event.which);
    if (s.toUpperCase() === s && s.toLowerCase() !== s && !event.shiftKey) {
        return true;
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.