Ich habe Probleme bei der Vermeidung der Sonderzeichen (Alt + Zahl von Bloq. Num -> ☺☻ ♦ ♦ ♣ • • ○) in einem Eingang.Prevent Tastendruck, wenn Alt-Taste Plus-Nummer von Bloq-Nummer gedrückt wird
ist mein Eingang wie folgt erklärt:
<html:text styleId="inputMaxVol" styleClass="numeric"/>
Dies ist auf meinem onReady
$(".numeric").keydown(function(event) {
return maskNumber();
});
Und hier ist, wo ich versuche, den Job (ohne Erfolg) zu tun
function maskNumber() {
if (event) {
var charCode = (event.which)? event.which : event.keyCode;
console.log(charCode);
// If not a number
if ((charCode < 47 || charCode > 58) && (charCode < 95 || charCode > 105)) {
console.log("not a number");
return false;
} else if (event.altKey) {
//No special characters admitted
console.log("Alt pressed");
return false;
}
} else {
return false;
}
}
Wenn ich Alt + 1 (Taste "1" vom Ziffernblock) drücke, erscheint das weiße Smiley-Gesicht und in meinem Protokoll erscheint etwas l Ike, dass
18
not a number
97
Alt pressed
Ich habe auch mit der event.preventDefault() ohne Erfolg versucht. Irgendeine Idee über wo ist mein Problem?
Danke, ich schätze wirklich jede Hilfe, die Sie zur Verfügung stellen können.
UPDATE: Wie in den Kommentaren erklärt die Lösung kommt dem Ereignis KeyDown für keypress ändern und die charCode comparation Zahlen zu wechseln (Jetzt ist nur, wenn (charCode < 48 || charCode > 57
) aufgrund der zurückgegebenen Zahlen haben sich verändert
So ist die. Lösung ist als
$(".numeric").keypress(function(event) {
return maskNumber();
});
function maskNumber() {
if (event) {
var charCode = (event.which)? event.which : event.keyCode;
// If not a number
if (charCode < 48 || charCode > 57) {
return false;
}
} else {
return false;
}
}
so einfach ist das folgt!
versuchen, diese Bibliothek: https: // github.com/tzuryby/jquery.hotkeys – brijrajsinh