problème d'execution d'un code JS sous IE

problème d'execution d'un code JS sous IE - HTML/CSS - Programmation

Marsh Posté le 03-03-2005 à 11:29:40    

Salut, j'ai une méthode JS placé dans une page HTML, qui permet d'afficher ou de cacher des champs textes en fonction du choix fait sur un checkbox.  
Sous Firefox, cette méthode fonctionne parfaitement, mais pas sous IE 6.0
Auriez-vous une idée, et comment puis je résoudre ce problème. m
merci
 
voici la méthode :
 
function choix_profil()
{
 
checkbox_1 = eval(form_3.elements[0]);
checkbox_2 = eval(form_3.elements[1]);
 
if (checkbox_1.checked == true) {
 
 document.form_3.text_3.type = "text";
 document.form_3.text_3.value = "BLABLA";
 
 document.form_3.text_4.type = "text";
 document.form_3.text_4.value = "BLABLA";
 
 }
if (checkbox_2.checked == true){
 document.form_3.text_3.type = "hidden";
 document.form_3.text_4.type = "hidden";
 }
}

Reply

Marsh Posté le 03-03-2005 à 11:29:40   

Reply

Marsh Posté le 03-03-2005 à 11:30:51    

Chelou ton code :heink:
 
Déjà en JS, pas d'underscore dans les noms. Les underscore c'est que valable en PHP. Là faut du camelCasing :o
 
Aussi, met un id à ton formulaire, et accède y via document.getElementById

Reply

Marsh Posté le 03-03-2005 à 11:31:34    

airsupply a écrit :

Salut, j'ai une méthode JS placé dans une page HTML, qui permet d'afficher ou de cacher des champs textes en fonction du choix fait sur un checkbox.  
Sous Firefox, cette méthode fonctionne parfaitement, mais pas sous IE 6.0
Auriez-vous une idée, et comment puis je résoudre ce problème. m
merci
 
voici la méthode :
 
function choix_profil()
{
 
checkbox_1 = eval(form_3.elements[0]);
checkbox_2 = eval(form_3.elements[1]);
 
if (checkbox_1.checked == true) {
 
 document.form_3.text_3.type = "text";
 document.form_3.text_3.value = "BLABLA";
 
 document.form_3.text_4.type = "text";
 document.form_3.text_4.value = "BLABLA";
 
 }
if (checkbox_2.checked == true){
 document.form_3.text_3.type = "hidden";
 document.form_3.text_4.type = "hidden";
 }
}


 
 
Les document.form, c'était bon durant la première guerre mondiale.
 
De nos jours, on utilise le DOM. :o


---------------
Expert en expertises
Reply

Marsh Posté le 03-03-2005 à 11:49:27    

FlorentG a écrit :

Chelou ton code :heink:
 
Déjà en JS, pas d'underscore dans les noms. Les underscore c'est que valable en PHP. Là faut du camelCasing :o
 
Aussi, met un id à ton formulaire, et accède y via document.getElementById


 
Bon, je suis passé à document.getElementById . et toujours le même résultat . Sous IE, marche pas, et sous Firefox, fonctionne très bien.  
 
voici les changements :
 
 
function choix_profil()
{
if (document.getElementById("box1" ).checked == true) {
 
 document.getElementById("text3" ).type = "hidden";
 document.getElementById("text4" ).type = "hidden";
 }
 
if (document.getElementById("box2" ).checked == true) {
 
 document.getElementById("text3" ).type = "text";
 document.getElementById("text3" ).value = "BLABLA";
 
 document.getElementById("text4" ).type = "text";
 document.getElementById("text4" ).value = "BLABLA";
 }
 
}

Reply

Marsh Posté le 03-03-2005 à 11:54:25    

FlorentG a écrit :

Chelou ton code :heink:
 
Déjà en JS, pas d'underscore dans les noms. Les underscore c'est que valable en PHP. Là faut du camelCasing :o
 
Aussi, met un id à ton formulaire, et accède y via document.getElementById


 
 
au fait, voici la balise JS que j'utilise :
<SCRIPT LANGUAGE="JavaScript">

Reply

Marsh Posté le 03-03-2005 à 11:55:51    

<script type="text/javascript">


 
Aussi c'est quoi ce truc :heink:, pourquoi tu change le type du champ pour le planquer :heink:

document.getElementById("text3" ).style.display = "none"

Reply

Marsh Posté le 03-03-2005 à 12:07:43    

FlorentG a écrit :

<script type="text/javascript">


 
Aussi c'est quoi ce truc :heink:, pourquoi tu change le type du champ pour le planquer :heink:

document.getElementById("text3" ).style.display = "none"



 
c'est simple, en fonction du choix fait sur un checkbox , les 2 champs apparaîssent ou disparaissent au lieu de les griser . Et je n'ai trouvé que type="hidden" .
 
tu as écris : document.getElementById("text3" ).style.display = "none" pour le faire disparaitre, et par quoi il faut remplacer "none" pour que le champs apparaisse.
 
merci

Reply

Marsh Posté le 03-03-2005 à 12:11:03    

au lieu de none, tu met soit "block" soit "inline" suivant le résultat désiré ;) Parce que changer le type, faut surtout pas :(

Reply

Marsh Posté le 03-03-2005 à 12:27:39    

FlorentG a écrit :

au lieu de none, tu met soit "block" soit "inline" suivant le résultat désiré ;) Parce que changer le type, faut surtout pas :(


 
 
bon tanpis, ça ne fonctionne toujours pas . les champs restent cachés .
 
merci quand même pour tes réponses.

Reply

Marsh Posté le 03-03-2005 à 12:28:09    

Non, ça devrait l'afficher à nouveau. T'as du foirer un truc :)

Reply

Marsh Posté le 03-03-2005 à 12:28:09   

Reply

Marsh Posté le 03-03-2005 à 12:44:30    

FlorentG a écrit :

Non, ça devrait l'afficher à nouveau. T'as du foirer un truc :)


 
ben écoute, je ne sais plus quoi répondre ... voici la portion de code . fait un copier coller et regarde le résultat .. (enfin si tu as le temp :-) )
 
 
<html>
<head>
 <title>TEST</title>
 <link rel="stylesheet" rev="stylesheet">
 
<SCRIPT LANGUAGE="JavaScript">
 
function choix_profil()
{
if (document.getElementById("box1" ).checked == true) {
 
 document.getElementById("text3" ).style.display = "none";
 document.getElementById("text4" ).style.display = "none";
 }
 
if (document.getElementById("box2" ).checked == true) {
 
 document.getElementById("text3" ).style.display = "block";
 document.getElementById("text3" ).value = "BLABLA";
 
 document.getElementById("text4" ).style.display = "block";
 document.getElementById("text4" ).value = "BLABLA";
 }
 
}
</script>
 
</head>
<body>
 
<form name="form1" method="post">
 
<table width="500" border="0" align="center" >
   <tr>
              <td width="246">Votre Profil</td>
              <td width="98">
                <input name="boutton_1" id="box1" type="radio" value="UPR001"onClick="choix_profil(this.form)" checked>
                Particulier<br>
              </td>
              <td width="142">
                <input name="boutton_1" id="box2" type="radio" onClick="choix_profil(this.form)">
    Professionnel</td>
   </tr>
 
            <tr>
              <td width="246">&nbsp;</td>
              <td colspan="2">
                <input name="text_3" id="text3" type="hidden" onFocus="if(this.value=='Raison sociale')this.value='';" >
              </td>
            </tr>
            <tr>
              <td width="246">&nbsp;</td>
              <td colspan="2">
                <input name="text_4" id="text4" type="hidden" onFocus="if(this.value=='Num&eacute;ro Siren')this.value='';">
             </td>
            </tr>
 </table>
</form>
 
 
</body>
</html>

Reply

Marsh Posté le 03-03-2005 à 12:59:14    

airsupply a écrit :

ben écoute, je ne sais plus quoi répondre ... voici la portion de code . fait un copier coller et regarde le résultat .. (enfin si tu as le temp :-) )
 
 
<html>
<head>
 <title>TEST</title>
 <link rel="stylesheet" rev="stylesheet">
 
<SCRIPT LANGUAGE="JavaScript">
 
function choix_profil()
{
if (document.getElementById("box1" ).checked == true) {
 
 document.getElementById("text3" ).style.display = "none";
 document.getElementById("text4" ).style.display = "none";
 }
 
if (document.getElementById("box2" ).checked == true) {
 
 document.getElementById("text3" ).style.display = "block";
 document.getElementById("text3" ).value = "BLABLA";
 
 document.getElementById("text4" ).style.display = "block";
 document.getElementById("text4" ).value = "BLABLA";
 }
 
}
</script>
 
</head>
<body>
 
<form name="form1" method="post">
 
<table width="500" border="0" align="center" >
   <tr>
              <td width="246">Votre Profil</td>
              <td width="98">
                <input name="boutton_1" id="box1" type="radio" value="UPR001"onClick="choix_profil(this.form)" checked>
                Particulier<br>
              </td>
              <td width="142">
                <input name="boutton_1" id="box2" type="radio" onClick="choix_profil(this.form)">
    Professionnel</td>
   </tr>
 
            <tr>
              <td width="246">&nbsp;</td>
              <td colspan="2">
                <input name="text_3" id="text3" type="hidden" onFocus="if(this.value=='Raison sociale')this.value='';" >
              </td>
            </tr>
            <tr>
              <td width="246">&nbsp;</td>
              <td colspan="2">
                <input name="text_4" id="text4" type="hidden" onFocus="if(this.value=='Num&eacute;ro Siren')this.value='';">
             </td>
            </tr>
 </table>
</form>
 
 
</body>
</html>


 
 
Ecoute, tu comprends RIGOUREUSEMENT RIEN à ce que l'on te dit visiblement. De plus, tu foires des "" , certains espaces manquent et j'en passe.
 
Apprend les bases et reviens ici plus tard. ça ne sert à rien de te macher le travail tant que tu ne comprends pas un minimum ce qu'on te dit...
 
Déjà dans un premier temps, apprend à construire un document (x)html valide, puis les propriétés basiques CSS.
 
Et ensuite, apprend ce qu'est une fonction javascript + quelques objets javascript de base... On en reparlera après hein...  :o


---------------
Expert en expertises
Reply

Marsh Posté le 03-03-2005 à 13:36:36    

Hermes le Messager a écrit :

Ecoute, tu comprends RIGOUREUSEMENT RIEN à ce que l'on te dit visiblement. De plus, tu foires des "" , certains espaces manquent et j'en passe.
 
Apprend les bases et reviens ici plus tard. ça ne sert à rien de te macher le travail tant que tu ne comprends pas un minimum ce qu'on te dit...
 
Déjà dans un premier temps, apprend à construire un document (x)html valide, puis les propriétés basiques CSS.
 
Et ensuite, apprend ce qu'est une fonction javascript + quelques objets javascript de base... On en reparlera après hein...  :o


 
pourquoi tu t'enerves comme ça . Il y a pas mort d'homme que je sache; j'ai posé une simple question concernant l'affichage de ces champs . Si je pose une question dans un forum pareil, c'est peut être parce que quelque part je n'ai pas la réponse  et que je ne suis pas un codeur à la base .  
 
enfin merci quand même, je vois que même dans les forums, il y a des mecs "indulgents"

Reply

Marsh Posté le 03-03-2005 à 13:49:13    

Revois tes événement onclick, y'a des problèmes de syntaxe dedans

Reply

Marsh Posté le 03-03-2005 à 13:53:22    

airsupply a écrit :

pourquoi tu t'enerves comme ça . Il y a pas mort d'homme que je sache; j'ai posé une simple question concernant l'affichage de ces champs . Si je pose une question dans un forum pareil, c'est peut être parce que quelque part je n'ai pas la réponse  et que je ne suis pas un codeur à la base .  
 
enfin merci quand même, je vois que même dans les forums, il y a des mecs "indulgents"


 
Ce forum est là pour que tu le deviennes. Et avant tout, il faut commencer par la base. Point.  :o  
 
Sans bases, rien n'est possible, même pas d'adapter des codes faits par d'autres.  


---------------
Expert en expertises
Reply

Marsh Posté le 03-03-2005 à 14:07:48    

Ce qui m'étonne le plus c'est que tu modifie la propriété display sur un input type=hidden...
Si tu veux les afficher, c'est input type=text....
 
--  
et comme la souligné FlorentG, dans le onclick tu passe une variable qui n'est pas déclaré et qui est inutile, donc vire this.form dedans
--
 
autrement, côté "style" de programation
 
stop les

Code :
  1. if (monBoolean == true)


 
ecrit directement

Code :
  1. if (monBoolean )


 
une condition, c'est toujours une valeur booléenne, donc pas la peine d'écrire == true...
 
et c'est vrai pour tous les languages.
 
 
 
 

Reply

Marsh Posté le 03-03-2005 à 14:25:32    

rompi a écrit :

Ce qui m'étonne le plus c'est que tu modifie la propriété display sur un input type=hidden...
Si tu veux les afficher, c'est input type=text....
 
--  
et comme la souligné FlorentG, dans le onclick tu passe une variable qui n'est pas déclaré et qui est inutile, donc vire this.form dedans
--
 
autrement, côté "style" de programation
 
stop les

Code :
  1. if (monBoolean == true)


 
ecrit directement

Code :
  1. if (monBoolean )


 
une condition, c'est toujours une valeur booléenne, donc pas la peine d'écrire == true...
 
et c'est vrai pour tous les languages.


 
 
merci , en effet, si je remplace type="hidden" par type="text"  ; cela fonctionne.  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed