[Javascript] Code ne fonctionnant pas partout - Vive opera

j’ai un pb avec un code javascript qui fonctionne sous opera mais pas sous IE 7 :frowning: Voici le fautif :

function verif_champs()
{

if(document.forms.form1.artiste.value == "" || document.forms.form1.cd.value == "" || document.forms.form1.chroniqueur.value == "" || document.forms.form1.chronique.value == "" || document.forms.form1.note.value == "" || document.forms.form1.titres.value == "")  
  {
    alert("Tous les champs n'ont pas été remplis !");
        return false;
  }
  return true;
}

Quelqu’un a une idée ?

EDIT : Le code suivant ne fonctionne pas non plus

function verif_champs()
{
if(document.forms["form1"].elements["artiste"].value == "" || document.forms["form1"].elements["cd"].value == "" || document.forms["form1"].elements["chroniqueur"].value == "" || document.forms["form1"].elements["chronique"].value == "" || document.forms["form1"].elements["note"].value == "" || document.forms["form1"].elements["titres"].value == "")  
  {
    alert("Tous les champs n'ont pas été remplis !");
        return false;
  }
  return true;
}

Passe par document.getElementById() :

<input type="text" id="machin" />

–> document.getElementById(‘machin’).value […]


<html?#62;
<head>

<script type="text/Javascript">
function verif_champs()
{
if(document.forms["form1"].elements["artiste"].value == "" || document.forms["form1"].elements["cd"].value == "" || document.forms["form1"].elements["chroniqueur"].value == "" || document.forms["form1"].elements["chronique"].value == "" || document.forms["form1"].elements["note"].value == "" || document.forms["form1"].elements["titres"].value == "")  
 {
   alert("Tous les champs n'ont pas été remplis !");
       return false;
 }
 return true;
}
</script>

</head>
<body>

<form id="form1" onsubmit="verif_champs()">

	<input type="text" id="artiste" name="artiste"/>
	<input type="text" id="cd" name="cd"/>
	<input type="text" id="chroniqueur" name="chroniqueur"/>
	<input type="text" id="chronique" name="chronique"/>
	<input type="text" id="note" name="note"/>
	<input type="text" id="titres" name="titres"/>
	<input type="submit"/>

</form>

</body>

</html?#62;

Marche parfaitement chez moi, avec Opera 9, Firefox2, et IE7 :neutre:

Et si un des champs ne contient qu’un espace?

Le but de ce genre de codes est de s’assurer que le visiteur n’a pas oublié de remplir un champ. Filtrer les espaces ne rime pas à grand chose vu que de toutes manières, s’il n’a pas envie de répondre, il écrira n’importe quoi :wink:

Alors j’ai reussi ce matin a le faire fonctionné en testant le paramètre “lenght”, si c’est égal à 0 alors c’est pas rempli… méthode un peu barbare.

Neanmoins, je ne capte tjr pas pk ca ne fonctionne pas ! Un bug de ma version d’IE7 ? ou une mauvaise installation ? Google ne semblepas rapporté ce genre d’erreurs. Je n’est cependant pas encore essayé la méthode du getID.

Le message qui va suivre n’a pour but que de donner une éventuelle piste d’explication.
Je ne connais pas beaucoup le JavaScript, mais du moins, en Java quand on veut comparer deux chaînes de caractères, on ne se sert pas de l’opérateur == mais de la méthode [equals(String)](http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#equals(java.lang.Object) de la classe String.
Alors peut-être qu’en JavaScript c’est pareil, ou peut-être pas :slight_smile:

Dans tous les cas : Bonne chance pour trouver ta solution.

Venant aussi du monde java javais fait cette supposition mais kedal, le javascript garde son statut de langage de script relativement simple d’utilisation.

Demain je reinstall IE7 pr voir !

Je vous tiens au courant

Tu peux faire un copier coller complet de ta page ? (code javascript + html)

Et si tu testes ta page en local (en double cliquant dessus), fait gaffe avec IE7, il faut cliquer sur la barre jaune en haut pour activer le javascript :wink:

J’ai reinstaller IE7 et tout fonctionne nikel… :paf:

Alors bug sur mon PC ? mauvaise installation ? Ou betement un bug d’IE7du style : incompatibilité avec un truc… bref a vous d’me dire :slight_smile:

J’avais eu un problème de contrôle de taille de champt sur les retours chariots, pas encodés pareil entre IE et FF (IE mettait ses CRLF quel que soit l’encoding de la page FF mettait le standard unix, donc un car de plus par retour chariot sur IE :confused:

teste en forçant l’encoding de la page en ISO, puis UTF (par le menu affichage-encodage)??
pas convaincu mais c’est une piste :wink:

Tu veux dire mettre une instruction doctype ?