2016-11-26 4 views
0

Ich möchte das Eingabefeld für Passwörter validieren, Sonderzeichen ausschließen. Grundsätzlich möchte ich nur Buchstaben oder Nummern aus irgendeinem Grund erkennen Zeichen wie `, 'nicht zulassen. ç usw.Sonderzeichen in Eingabefeldern nicht zulassen

$('#passcode').on('keypress', function(e) { 
    var key = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
    if (!/^[A-Z0-9]+$/i.test(key)) { 
     e.preventDefault(); 
    } 
}) 

Hier ist eine Geige: https://jsfiddle.net/gb5kc12z/

Versuchen mit% oder ', C, `

+1

Ich kann das Problem nicht reproduzieren. Natürlich musste ich einige Annahmen über den verwendeten HTML-Code machen. Du hast in deiner Frage kein [mcve] angegeben. – Quentin

+1

Ich bin neugierig: Speichern Sie diesen Passcode im Klartext? Denn es gibt buchstäblich keinen anderen Grund, eine passwortähnliche Eingabe zu beschränken, und dieser Grund ist auch nicht gut, weil Sie Ihre Passwörter mit bcrypt, Argon oder PBKDF2 hashen sollten. In diesem Fall macht es keinen Unterschied, welche Werte drin sind Ihr Passwort. – Nzall

+0

kann Ihren Fehler nicht reproduzieren, es funktioniert gut für mich; +1 @Nzall – Blag

Antwort

0

Ich vermute, Sie testen durch Einfügen in diesen Sonderzeichen statt sie tippen? Ihr Code testet nur, wenn ein Benutzer einen Schlüssel zum Eintippen eines Zeichens freigibt. Unter Best way to track onchange as-you-type in input type="text"? finden Sie weitere Informationen zum Verfolgen aller Wertänderungsereignisse in einem Eingabefeld in modernen Browsern.

Verwandte Themen