Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources 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 03/07/2009, 13h25   #1
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 95
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 95
Points : 29
Points : 29
Par défaut incompatibilite onkeyup et onchange

Salut,

je suis sous IE 6

voila pour un champ input text,

j'utilise 3 évènements onkeyup, onchange, onkeypress.

dans le onkeyup j'ai une fonction qui me permet de faire un masque de saisi pour ma date

dans le onchange j'ai une fonction qui contrôle que le date saisie est bien valable par rapport à la date du jour

et enfin dans le onkeypress j'ai une condition qui interdit certains caractères.


Voila mon problème c'est que quand je mets ces 3 évènements en même temps il y a juste le onkeyup et le onkeypress qui fonctionne le onchange n'est pas pris en compte !

En revanche si j'enlève le onkeyup l'évenement onchange et onkeypress aussi fonctionnne !!!

Donc je sais pas si il y a incompatibilité entre le onchange et le onkeyup

mais quand les deux sont ensembles cela pose un problème !!!!


voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<html>
<head>
<script type="text/javascript" >
 
function DateDebut() {
// date renseignée par l'utilisateur
var dateD = document.getElementById('dte_deb_validite').value;
var DateD = dateD.replace(/^(\d)\//,"0$1").split('/').reverse().join('');
 
//date de référence
var dateR = new Date()
var mois = dateR.getMonth()+2
var annee =dateR.getFullYear()
var dateRe = (mois)+"/"+(annee)
var dd = dateRe.replace(/^(\d\/)/,"0$1")
var DateR = dateRe.replace(/^(\d\/)/,"0$1").split('/').reverse().join('')
 
 
if (DateR>DateD) {
alert("la date saisie est antérieure à la date de référence : "+dd+" ,veuillez indiqué une date égale ou supérieur à la date de référence");
return false
}
}
 
function masqueSaisieDate(obj) { 
		var ch; 
		var ch_gauche, ch_droite; 
		ch = obj.value; 
		obj.value = ch.slice(0,7);
		ch.toString(); 
 
		if (((ch.slice(2, 3)) != ("/") ) && (ch.length >= 3) ){ 
			ch_gauche = ch.slice(0, 2); 
		  	ch_droite = ch.slice(2); 
		  	obj.value = ch_gauche + "/" + ch_droite; 
		} 
		 return; 
	}
 
</script>
</head>
<body>
<td width="300">	
			<font   size ="2"><b><font color="red">*</font>
						AVK : Date de début de validité (mm/aaaa)
					</b></font><input  name="Date_Deb_Validite"  id="dte_deb_validite"  size=10 maxlength=7   onchange="DateDebut();"  onkeyup="masqueSaisieDate(this)" onkeypress="if (event.keyCode < 48 || event.keyCode > 57)event.returnValue = false;"    >
				    </td>
</body>
</html>

Merci
bambino13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2009, 19h43   #2
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 95
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 95
Points : 29
Points : 29
J'ai trouvé j'ai remplacé onchange par Onblur et cela fonctionne impec......
bambino13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 12h13.


 
 
 
 
Partenaires

Hébergement Web