2009-03-20 3 views
12

Wer weiß, wie kann ich die Rücktaste deaktivieren und Schlüssel mit Javascript in IE löschen? Dies ist mein Code unten, aber es scheint, es ist nicht Arbeit für IE, aber gut für Mozilla.Deaktivieren Sie die Rücktaste und löschen Sie den Schlüssel mit Javascript in IE

onkeydown="return isNumberKey(event,this)" 

function isNumberKey(evt, obj) 
{ 

    var charCode = (evt.which) ? evt.which : evt.keyCode 
    if (charCode == 8 || charCode == 46) return false; 

    return true; 
} 
+0

Ich würde mit dem OnKeyUp/onKeyDown Ereignisse und was die Event-Objekt Mitglieder sind. Dies sollte Ihnen alle Daten liefern, die Sie benötigen. –

Antwort

13

Dieser Event-Handler funktioniert in allen gängigen Browsern.

function onkeyup(e) { 
    var code; 
    if (!e) var e = window.event; // some browsers don't pass e, so get it from the window 
    if (e.keyCode) code = e.keyCode; // some browsers use e.keyCode 
    else if (e.which) code = e.which; // others use e.which 

    if (code == 8 || code == 46) 
     return false; 
} 

Sie können das Ereignis an diese Funktion wie anhängen:

<input onkeyup="return onkeyup()" /> 
+4

Typo. wenn (Schlüsselcode muss ich sagen, wenn (Code –

5

Update basierend auf @JoeCoder s Kommentar und 'outdatedness' meiner Antwort, ich habe es überarbeitet.

document.querySelector([text input element]).onkeydown = checkKey; 
function checkKey(e) { 
    e = e || event; 
    return !([8, 46].indexOf(e.which || e.keyCode || e.charCode) > -1); 
} 

Siehe this jsFiddle

+0

hmm, ich bin mir ziemlich sicher, dass ich diesen Ereignisanhang in allen großen Browsern verwendet habe (zB ff, safari, chrome, oper). – Joel

+0

Ich habe diesen Code in jsFiddle (http : //jsfiddle.net/x9tnxqLt/2/) und ich kann es nicht in IE11, Firefox 35 oder Chrome 40 arbeiten. Es fängt das keyup-Ereignis ab und bekommt den Code, aber selbst wenn false zurückgegeben wird, bleibt der Browser immer noch löscht Zeichen aus der Eingabe, wenn Backspace oder Delete gedrückt werden Joel Potters Code funktioniert auch nicht – Dwayne

+0

Eher eine alte Antwort: Die jsfiddle @ http://jsfiddle.net/KooiInc/9r6bvaLd/ funktioniert möglicherweise besser – KooiInc

2
$(document).keydown(function(e) { 
    if (e.keyCode === 8) { 
     var element = e.target.nodeName.toLowerCase(); 
     if ((element != 'input' && element != 'textarea') || $(e.target).attr("readonly")) { 
      return false; 
     } 
    } 
}); 
2

auch Dieser Code Backspace Aktion abgebrochen.

window.onkeydown = function (event) { 

    if (event.which == 8) { 

     event.preventDefault(); // turn off browser transition to the previous page 

       // put here code you need 

     }; 

};  
Verwandte Themen