Onkeypress

[Résolu]
Signaler
Messages postés
108
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
9 juillet 2013
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
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

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
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)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
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)
Messages postés
108
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
9 juillet 2013

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
Messages postés
108
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
9 juillet 2013

merci mon frère pour votre attention
j'ai trouvé la solution

cordialement
sidalilo
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
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)