2016-11-10 3 views
0

Ich muss Backspaces für alle Webseiten in meinem Projekt deaktivieren, und ich habe es mit e.prevent Standardmethode gemacht, aber wenn eine Warnung ist Wenn die Standardvorgabe von e.prevent nicht funktioniert, geht die Webseite bei gedrückter Rücktaste einfach zur vorherigen Seite. Irgendwelche Lösungen?Backspace arbeiten in Firefox nach dem Alarmfenster angezeigt wird, auch wenn e.preventdefault() verwendet wird

if(input){ 
alert("wrong input"); 
} 

function disableBackSpace(e){ 
    var doPrevent = false; 
    if (e.keyCode === 8) { 
     var d = e.srcElement || e.target; 
     if ((d.tagName.toUpperCase() === 'INPUT' && 
      (
       d.type.toUpperCase() === 'TEXT' || 
       d.type.toUpperCase() === 'PASSWORD' || 
       d.type.toUpperCase() === 'FILE' || 
       d.type.toUpperCase() === 'SEARCH' || 
       d.type.toUpperCase() === 'EMAIL' || 
       d.type.toUpperCase() === 'NUMBER' || 
       d.type.toUpperCase() === 'DATE') 
      ) || 
      d.tagName.toUpperCase() === 'TEXTAREA') { 
      doPrevent = d.readOnly || d.disabled; 
     } 
     else { 
      doPrevent = true; 
     } 
    } 

    if (doPrevent) { 
     e.preventDefault(); 
    } 
} 

Das obige Verfahren wird jedes Mal wenn ich einen Rücktaste drücken genannt, aber das funktioniert nicht, wenn ich auf einem Alarmfenster bin. Grundsätzlich ist der obige Backspace-Code als JSP-Seite für alle Webseiten enthalten.

+1

die ** ** Alarm Sie sprechen? Code anzeigen – Vikrant

+0

Mögliches Duplikat von [Wie kann ich die Rücktaste deaktivieren, drücken Sie auf allen Browsern?] (http://stackoverflow.com/questions/6309693/how-can-i-disabling-backspace-key-press-on-all -Browsers) – Liam

+0

Nicht-jQuery-Version, wahrscheinlich nützlicher als Duplikat: [So erfassen Sie eine Rücktaste beim onkeydown-Ereignis] (http://stackoverflow.com/questions/2353550/how-to-capture-a-backspace- on-the-onkeydown-event) – Liam

Antwort

0

Fügen Sie Ihren Backspace-Code unter $(document).keydown hinzu.

Es wird auf das gesamte Dokument auftreten, unabhängig von einer Warnung oder Popup geöffnet ist.

$(document).keydown(function(e) { 
      if (e.keyCode == 8) alert('Not Allowed'); 
    }); 

JsFiddle Demo

+0

Keine Erwähnung von jQuery in der Frage oder Tags. ** Hinweis zum OP **: Dies funktioniert nur, wenn Sie die jQuery-Bibliotheken einschließen, die Sie vielleicht nicht tun wollen oder nicht wollen – Liam

+0

Das gleiche Ergebnis funktioniert nicht, ich habe dieses Skript direkt auf der JSP-Seite unter dem Skript-Tag abgelegt – vishalaestro

+0

selbst der Code, den er oben erwähnt, wird nicht funktionieren, entfernen Sie das Warnfenster und setzen Sie e.preventDefault(). Immer noch die Seite wird zurückgehen, wenn wir die Rücktaste drücken – vishalaestro

Verwandte Themen