Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
563 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°999358
airsupply
Posté le 03-03-2005 à 11:29:40  profilanswer
 

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";
 }
}

mood
Publicité
Posté le 03-03-2005 à 11:29:40  profilanswer
 

n°999362
FlorentG
Posté le 03-03-2005 à 11:30:51  profilanswer
 

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

n°999363
Hermes le ​Messager
Breton Quiétiste
Posté le 03-03-2005 à 11:31:34  profilanswer
 

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
n°999383
airsupply
Posté le 03-03-2005 à 11:49:27  profilanswer
 

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";
 }
 
}

n°999388
airsupply
Posté le 03-03-2005 à 11:54:25  profilanswer
 

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">

n°999390
FlorentG
Posté le 03-03-2005 à 11:55:51  profilanswer
 

<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"

n°999412
airsupply
Posté le 03-03-2005 à 12:07:43  profilanswer
 

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

n°999415
FlorentG
Posté le 03-03-2005 à 12:11:03  profilanswer
 

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

n°999431
airsupply
Posté le 03-03-2005 à 12:27:39  profilanswer
 

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.

n°999434
FlorentG
Posté le 03-03-2005 à 12:28:09  profilanswer
 

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

mood
Publicité
Posté le 03-03-2005 à 12:28:09  profilanswer
 

n°999452
airsupply
Posté le 03-03-2005 à 12:44:30  profilanswer
 

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>

n°999464
Hermes le ​Messager
Breton Quiétiste
Posté le 03-03-2005 à 12:59:14  profilanswer
 

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
n°999510
airsupply
Posté le 03-03-2005 à 13:36:36  profilanswer
 

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"

n°999523
FlorentG
Posté le 03-03-2005 à 13:49:13  profilanswer
 

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

n°999529
Hermes le ​Messager
Breton Quiétiste
Posté le 03-03-2005 à 13:53:22  profilanswer
 

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
n°999546
rompi
Posté le 03-03-2005 à 14:07:48  profilanswer
 

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.
 
 
 
 

n°999563
airsupply
Posté le 03-03-2005 à 14:25:32  profilanswer
 

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.  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

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

 

Sujets relatifs
Problème compilation (toolkit Maximum Entropy)probleme verification si checkbox est cochée
problème d'erreur de segmentationProblème de chargement d'images sur Rollover avec IE
Problème mysql_query[MFC/C++] Problème d'initialisation de CListCtrl
Problème d'agrégationProbleme fermeture application si fenetres ouvertes ....
[JAVA] Probleme de conversion de String en Date?problème gestion panier php
Plus de sujets relatifs à : problème d'execution d'un code JS sous IE


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR