Ajax, IE et délires javascriptiques :s

Fermé
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 14 nov. 2008 à 15:41
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 14 nov. 2008 à 19:36
Bonjour,

Je code un formulaire d'identification dont la vérification des données se fait via javascript et les méthodes ajax (d'après mes bouquins). Ca fonctionne impecc sous Opéra et Firefox, mais sous IE, que dalle!

Voilà comment ça se passe:

La page d'accueil du site est vide, à l'exception d'un formulaire contenant les inputs adéquats. Sur l'input à vérifier, il y a onKeyUp='checkpsw()', qui, comme vous l'avez compris, vérifie le contenu de l'input dès qu'une touche est relâchée -et que l'input a le focus.

La fonction checkpsw déclenche une autre fonction grâce à une minuterie. La seconde fonction fait en fait les vérifications, la première est supposée palier au problème d'IE.

Ces deux fonctions fonctionnent (merci les redondances -_-) parfaitement sous Opéra et firefox, mais ça plante sur IE. En fait, la vérification peut renvoyer trois string différents, par défaut elle en renvoi au moins deux, un premier, qui modifie un champ texte pour s'afficher, et le second, qui fait pareil et qui permet si le test est passé de continuer. Je crois que IE refuse de changer 2 fois mon champ texte, alors que les autres le font sans problème.

Quelqu'un pourrait il m'aider?

Voici mes fonctions:

function checkpsw() {
    if(document.getElementById('psw').value.length=6) { /*vérifie que l'utilisateur a bien rentré 6 caractères avant de déclencher la vérification dans les bdd*/
    setTimeout('checkpsw1()',1000);
    }
}

function checkpsw1() {

		if(window.XMLHttpRequest)
			{
				var htr=new XMLHttpRequest();
			}
			
		if(window.ActiveXObject)
			{
				var htr=new ActiveXObject('Microsoft.XMLHTTP');
			}
		var psw=document.getElementById('psw').value;
		var url="ajaxLogger.php?psw="+psw;
		
		htr.open("GET",url,false);
		htr.send(null);
		
		document.getElementById('checkPswP').innerHTML=htr.responseText;

	}


En vous remerciant,

Smoke
A voir également:

2 réponses

Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
14 nov. 2008 à 18:59
up
1
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
14 nov. 2008 à 19:36
Je continue mes recherches, et il semble que le problème se situe au niveau de l'utilisation des évènements.

<input onFocus='checkpsw()' name='hhh' />


ne fonctionne donc absolument pas :s sous IE en tous cas, puisque tout va bien sous les autres navigateurs. Comment puis-je utiliser les évènements sous IE?
1