J'ai des problèmes pour éviter les caractères spéciaux (Alt + numéro de Bloq num -> ☺☻ ♥ ♦ ♣ ◘ • ◘ ○) dans une entrée.Empêche d'appuyer sur la touche lorsque la touche Alt et le numéro du numéro Bloq sont pressés
Mon entrée est déclarée comme ceci:
<html:text styleId="inputMaxVol" styleClass="numeric"/>
Ceci est mon onReady
$(".numeric").keydown(function(event) {
return maskNumber();
});
Et voici où je suis en train de faire le travail (sans succès)
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;
}
}
Si j'appuie sur Alt + 1 (touche "1" du pavé numérique), le smiley blanc apparaît et dans mon journal apparaît quelque chose J'ai aussi essayé avec l'événement event.preventDefault() sans succès. Une idée d'où est mon problème? Merci, j'apprécie vraiment toute aide que vous pouvez fournir.
MISE À JOUR: Comme expliqué dans les commentaires de la solution vient changer l'événement KeyDown pour keypress et changer les numéros de comparation charCode (Il est maintenant que si (charCode < 48 || charCode > 57
) en raison du nombre retournés ont changé trop
Donc. solution est la suivante
$(".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;
}
}
simple!
essayer cette bibliothèque: https: // github.com/tzuryby/jquery.hotkeys – brijrajsinh