Bonjour,

J'essaie via keypress() de restreindre la saisie (alphanumérique) d'un champ input de type texte.
Dans un premier temps, j'ai fais le code ci-dessous qui fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
$("#vname").keypress(function(event){
 if(event.which < 48 && event.which != 8){event.preventDefault();event.stopPropagation();}
 if(event.which > 57 && event.which < 65){event.preventDefault();event.stopPropagation();}
 if(event.which > 90 && event.which < 97){event.preventDefault();event.stopPropagation();}
 if(event.which > 122){event.preventDefault();event.stopPropagation();}
});
Ayant dans mon application plusieurs saisies à contrôler (les inputs sont créés dynamiquement et supprimés également), j'ai voulu externaliser le contrôle dans une fonction de la façon suivante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
$("#vname").keypress(isAlpha(event));
 
function isAlpha(event){
 if(event.which < 48 && event.which != 8){event.preventDefault();event.stopPropagation();}
 if(event.which > 57 && event.which < 65){event.preventDefault();event.stopPropagation();}
 if(event.which > 90 && event.which < 97){event.preventDefault();event.stopPropagation();}
 if(event.which > 122){event.preventDefault();event.stopPropagation();}
}
Par contre cela ne fonctionne pas.
Après quelques tentatives j'ai codé l'appel à la fonction comme ci-dessous et cela fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$("#vname").keypress(function(event){isAlpha(event);});
Je suis probablement passé à coté d'un truc important sur les fonctions ou event.
Une explication serait grandement appréciée

Merci