Conseil pour IE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Conseil pour IE

par aelurus » 15 juil. 2008, 11:44

Re
J'ai bien fait la modife mais cela n'a rien changé...
Tans pis pour IE je verrais cela plus tard.
Encore merci

par chrislabricole » 14 juil. 2008, 18:32

Euh.. la je vois pas trop pourquoi, essaies déjà de mettre

Code : Tout sélectionner

Rayon : <input name="rayon" type="text" onmouseover="Verif_rayon('rayon');" onchange="Verif_rayon('rayon');" onmouseout="Verif_rayon('rayon');" /> mm.
au lieu de

Code : Tout sélectionner

Rayon : <input name="rayon" type="text" onmouseover="Verif_rayon('rayon');" onchange="Verif_rayon('rayon');" onmouseout="Verif_rayon('rayon');" /> mm.
on sais jamais :/ sinon je vois pas trop :P

par aelurus » 14 juil. 2008, 18:17

Je te remercie des tuyaux.

Le

Code : Tout sélectionner

onmouseover="alert('ca marche....');"
Marche aussi bien sous IE que sous FF.

En utilisant l'attribut "name" comme tu me l'as conseillé marche très bien aussi.
Par contre J'ai toujours le même résultat avec IE il n'y a que le onsubmit qui passe.
Les vérification à la saisie avec les messages d'avertissement ne passe pas...
Merci encore des conseils.

par chrislabricole » 14 juil. 2008, 13:07

Ok, je te rappel que une id (<... id="...">) doit s'appliquer une seule et unique fois à un élément de la page, tu ne peux pas faire par exemple :

Code : Tout sélectionner

<a href="lien1.html" id="lien">Lien 1</a> <a href="lien2.html" id="lien">Lien 2</a> <a href="lien3.html" id="lien">Lien 3</a> <a href="lien4.html" id="lien">Lien 4</a>
mais à la place de ID, tu peux mettre NAME, mais à ce moment là, ça ne sera plus

Code : Tout sélectionner

document.getElementById('lien').value
mais

Code : Tout sélectionner

document.getElementsByName('lien')[0].value
et ne pas oublier le S ) Elements, parce-que le nom (name) contrairement à l'ID, il peux s'appliquer plusieurs fois à un élément

Code : Tout sélectionner

<a href="lien1.html" name="lien">Lien 1</a> <a href="lien2.html" name="lien">Lien 2</a> <a href="lien3.html" name="lien">Lien 3</a> <a href="lien4.html" name="lien">Lien 4</a>
Mais il faut le localiser avec une petit identifiant, ça par de 0 pour aller à .......

Après ça, pour tester sous IE, tu peux mettre dans le <input> ça :

Code : Tout sélectionner

onmouseover="alert('ca marche....');"
Si quand tu passe la souris sur l'input ie affiche un message, c'est bon signe, si non, ben... :roll:

Voilà, à ton tour ;p

par aelurus » 14 juil. 2008, 12:40

Merci de ton info chrislabricole.
Par contre j'ai testé et cela me fait sauter mon message d'avertissement car j'utilise deja l'id dans la balise <a> pour afficher le message en cas de mauvaise saisie.
J'avais envisager ce traitement d'erreur en option du traitement php.
Je vais retourner dessus et intégrerais le javascript tel quel cela fera un plus pour les utilisateur FF.
Merci pour firebug c'est pas mal du tout, mais je n'ai pas trouvé d'erreur avec 11 comme longueur de corde...
Et comme pour ton post que j'ai lu le soucis est assez ressemblant le onsbmite passe tres bien mais par les onmousse... Est ce IE ou un mauvais codage??? Je ne le sais pas.

par chrislabricole » 13 juil. 2008, 18:40

Déjà en effet, ça marche visuellement sous FF mais... installes FireBug, tu verras que si tu mets un chiffre inférieur à 11 il va rester rouge mais ça fais des erreurs que tu ne vois pas forcément...

et aussi, au lieu de faire :

Code : Tout sélectionner

var corde = document.formulaire.Lcorde.value;
Je pense qu'il vaut mieux faire :

Code : Tout sélectionner

var corde = document.getElementById('Lcorde').value;
et d'ajouter

Code : Tout sélectionner

id="Lcorde"
à ton champs Lcorde...

Pour IE, je pense que les champs input ne peuvent pas recevoir d'évènement onmouseover...

Bon courage

Conseil pour IE

par aelurus » 13 juil. 2008, 13:55

Bonjour à tous.

Je tente de faire un peu de javascript pour faire du traitement d'erreurs dans un formulaire,et après quelques recherche j'ai put adapter des scripts trouvés sur la toile.
Tout fonctionne très bien avec firefox mais pas franchement avec IE.
Mon soucis est que je ne sais pas ou ni quoi chercher a corriger dans mon script.
Si vous avez des pistes je vous en serais grès.
Merci d'avance.

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"> <head> <title>Test de vérification de formulaire</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" type="text/css" media="screen" href="style.css" /> <script type="text/JavaScript"> <!-- function check() { var msg = ""; var message = ""; var messagelc = ""; var corde = document.formulaire.Lcorde.value; var r = document.formulaire.rayon.value; if (corde == "" ) { msg += "Veuillez saisir une longueur de corde \n"; } if ( !IsNumeric (corde)) { msg += "Votre longueur de corde doit être un nombre\n"; } if (r == "") { msg += "Veuillez saisir un rayon \n"; } if ( !IsNumeric (r)) { msg += "Votre rayon doit être un nombre\n"; } if (msg == "") return(true) else { alert(msg); return(false); } } function IsNumeric(sText) //vérifie si la chaine envoyée est de type numérique { var ValidChars = "0123456789."; var IsNumber=true; var Char; for (i = 0; i < sText.length && IsNumber == true; i++) { Char = sText.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; } function Verif_rayon(champ) { if(document.getElementById){ var message = ""; var rayon = ""; var rayon = document.formulaire.rayon.value ; if ( IsNumeric(rayon) && rayon !== "" ) { if ( document.formulaire.rayon.value >= document.formulaire.Lcorde.value/2 ) { message ="<b class ='alert'>Votre rayon doit être inférieur à : "; message += document.formulaire.Lcorde.value/2; message +="<\/b>)"; msg += "Votre rayon doit être inférieur à :"; msg += document.formulaire.Lcorde.value/2 ; document.formulaire.rayon.style.backgroundColor = "#FF4116"; document.getElementById(champ).innerHTML = message; } if(document.formulaire.rayon.value <= document.formulaire.Lcorde.value/2 && document.formulaire.rayon.value !== "") { message =" (<b class ='valide'>OK, votre rayon est inferieur à : "; message += document.formulaire.Lcorde.value/2; message +="<\/b>)"; document.getElementById(champ).innerHTML = message; document.formulaire.rayon.style.backgroundColor = "#32FF1F"; } } else{ message =" (<b class ='alert'>Vous devez mettre un nombre inférieur à "; message += document.formulaire.Lcorde.value/2; message +="<\/b>)"; document.getElementById(champ).innerHTML = message; document.formulaire.rayon.style.backgroundColor = "#FF4116"; } } } function Verif_lcorde(champ) { if(document.getElementById){ var lcorde = document.formulaire.Lcorde.value ; if ( !IsNumeric (lcorde) || lcorde =="") { messagelc =" (<b class ='alert'>Vous devez mettre un nombre!!!<\/b>) "; document.getElementById(champ).innerHTML = messagelc; document.formulaire.Lcorde.style.backgroundColor = "#FF4116"; } else{ messagelc =" (<b class ='valide'>OK<\/b>) "; document.getElementById(champ).innerHTML = messagelc; document.formulaire.Lcorde.style.backgroundColor = "#32FF1F"; } } } //--> </script> </head> <body> <form action="" method="post" enctype="application/x-www-form-urlencoded" name="formulaire" onsubmit="return check();"> Longueur de corde : <input name="Lcorde" type="text" onmouseover="Verif_lcorde('Lcorde');" onchange="Verif_lcorde('Lcorde');" onkeypress="Verif_lcorde('Lcorde');" onmouseout="Verif_lcorde('Lcorde');" /> mm. <a id="Lcorde"></a><br /> Rayon : <input name="rayon" type="text" onmouseover="Verif_rayon('rayon');" onchange="Verif_rayon('rayon');" onmouseout="Verif_rayon('rayon');" /> mm. <a id="rayon"></a><br /> <input type="submit" name="Submit" value="Envoyer" /> </form> </body> </html>