Onkeypress

Résolu
cs_sidalilo Messages postés 108 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 9 juillet 2013 - 12 avril 2010 à 14:13
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 18 avril 2010 à 09:49
Bonjour
J’ai un champ Heure ou j'ai empêché les caractères et j'autorise que les chiffres pour avoir une heure mais le problème l'utilisateur peut saisir par exemple plus de 59(60,61,63,...)
donc je veux empêcher >59 et je l'autorise que de 00 à 59 dans onkeypress seulement

Merci pour votre attention

Cordialement
sidalilo

5 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
14 avril 2010 à 18:19
Bonjour,
tu n'en es pas loin...
la première chose à faire est de connaitre les données en présence...
...dans ton cas tu as la value de l'INPUT qui est une STRING et une borne qui est un NUMERIC, donc ton test ne peut pas fonctionner.
Pour récupérer la valeur numérique de la chaîne de caractère il y a la méthode parseInt qui retourne un entier.
donc cela devient
var sChaine = document.getElementById(champ).value; // Recup de la chaine
var iValeur = parseInt( sChaine);                   // conversion en entier

à partir de la tu peux comparer des choses comparables.

Il est quand même nécessaire de gérer un minimum la saisie pour vérifier que iValeur est bien un entier, il y a pour cela la fonction isNaN() qui retourne true si le paramètre n'est pas un numérique.

Je pense qu'il faut que tu testes également que la valeur soit supérieure ou égale à 0 pour être conforme car -1 est un entier.

Encore une petite chose
passe en paramètre this, qui représente l'objet INPUT comme cela tu peux exploiter directement tous ses attributs méthodes...
onkeyup = "emp( this);"
et dans la fonction
//-----------------
function emp( obj_){
  var sChaine = obj_.value;
  //-- ou directement
  var iValeur = parseInt( obj_.value);
  // la suite du code
}


;O)
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
13 avril 2010 à 22:05
Bonjour,
l'événement onkreypress n'est pas adapté dans ton cas car déclenché au moment de l'appui sur la touche et avant que celle ci ne soit prise en compte.

Il te faut utiliser l'événement onkeyup et faire la vérification de la saisie sur celui ci.

;O)
cs_sidalilo Messages postés 108 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 9 juillet 2013
14 avril 2010 à 11:53
bonjour
merci pour votre attention
j'ai testé avec l'evenement onkeyup mais ca marche pas voila qui ce que j'au fait:
une fonction de la verification:

<script type="text/javascript">
function emp(champ)
if(document.getElementById(champ).value>59){
document.getElementById(champ).value="";
}
</script>

dans le champ "Heure":

Heure :

si le code est erroné merci bien de vous me le corriger
cordialement
sidalilo
cs_sidalilo Messages postés 108 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 9 juillet 2013
17 avril 2010 à 12:20
merci mon frère pour votre attention
j'ai trouvé la solution

cordialement
sidalilo

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
18 avril 2010 à 09:49
Bonjour,
- N'oubliez pas qu'un forum ne sert pas qu'à poser une question!
- Il sert aussi, aux autres, à trouver une réponse satisfaisante à une question.
- Merci de mettre en réponse acceptée, la réponse qui vous a aidé ou même votre propre solution.
- C'est aussi cela l'esprit d'un forum...

;O)
Rejoignez-nous