Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/04/2011, 17h24   #1
Membre confirmé
 
Avatar de SPACHFR
 
Inscription : février 2004
Messages : 502
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 502
Points : 243
Points : 243
Par défaut Keypress() et event

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 :
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 :
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 :
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
__________________
S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
SPACHFR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2011, 21h38   #2
Membre confirmé
 
Homme Xavier ZOLEZZI
Étudiant
Inscription : juin 2008
Messages : 135
Détails du profil
Informations personnelles :
Nom : Homme Xavier ZOLEZZI
Âge : 23
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 135
Points : 224
Points : 224
Il me semble, mais j'en suis pas sur, qui si tu veux appeler une fonction, il ne faut pas lui passer de paramètres, ils sont passés automatiquement.

Code :
1
2
3
4
5
6
7
8
$("#vname").keypress(isAlpha);
 
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();}
}
Edit: J'ai testé et ça fonctionne sans les paramètres.
__________________
Afin d'améliorer la qualité des forums pensez à marquer en lorsque le problème est clôturé.
Mais aussi d'indiquer les messages utiles [pouce vert] pour que les personnes ayant le même problème trouvent rapidement leur réponse.

Réalisation : http://www.batifac.com
x-zolezzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 11h50   #3
Membre confirmé
 
Avatar de SPACHFR
 
Inscription : février 2004
Messages : 502
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 502
Points : 243
Points : 243
Merci pour cette précision.

Je suis surpris du fait qu'il ne soit pas nécessaire de passer l'argument event, mais bon....
__________________
S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
SPACHFR est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h20.


 
 
 
 
Partenaires

Hébergement Web