[ Javascript Netscape]

[ Javascript Netscape] - Programmation

Marsh Posté le 24-08-2001 à 11:53:19    

D'abord mon prob:
Sous IE lorsque je clique sur l'un des 2 boutons radio, soit ça m'affiche ou m'efface 2 zones de texte avec leur nom devant seulement avec Netscape, ça marche pas ça affiche ou efface uniquement les noms, je vois jamais les textbox???
 
Voici mon code:
 
<HTML>
<BODY>
<script>
function affiche(){
        if(document.layers){
            document.territoire.visibility="visible";
        }
        if(document.all){
            document.all.territoire.style.visibility="visible";
        }
        if(!document.all && document.getElementById){
            document.getElementById("territoire" ).style.visibility="visible";
        }
   }
function efface(){
        if(document.layers){
            document.territoire.visibility="hidden";
        }
        if(document.all){
            document.all.territoire.style.visibility="hidden";
        }
        if(!document.all && document.getElementById){
            document.getElementById("territoire" ).style.visibility="hidden";
        }
   }
</script>
 <CENTER>
    <B><H1><FONT COLOR=#FF0033>Création d'une carte - Définition du territoire</FONT></H1></B>
 </CENTER>
 <TABLE>
 <TR>
     <FORM name="formulaire" action="carteliste.php">
        <TABLE>
        <TR>
           <TD>
               <input type="image" SRC="france.gif" border="0">
           </TD>
           <TD>
             <CENTER>
                <input type="radio" name="choixdept" onclick="efface();" value="dept" checked>Un département
                <input type="radio" name="choixdept" onclick="affiche();" value="region" >Un territoire
             </CENTER>
             <div id="territoire" style="position:relative;background-color:#FFFFFF;visibility:hidden">
                <CENTER>
                   <br><br><CENTER>Rayon du territoire (en km): </CENTER><CENTER><input type="text" name="rayon" value="150">
                </CENTER>
                <CENTER>
                   <br><br>Centrer sur la commune (Nom): <input type="text" name="commune">
                </CENTER>
             </div>
           </TD>
        </TR>
        </TABLE>
     </FORM>
 </TR>
 </TABLE>
</BODY>
</HTML>

Reply

Marsh Posté le 24-08-2001 à 11:53:19   

Reply

Marsh Posté le 24-08-2001 à 14:28:05    

Bon, je vais préciser un peu alors parce que ça pas l'air de vous inspirer:
Avec ce code,  au départ on a une image et à côté deux boutons radio, un selectionné par défaut:"département"! Par défaut également, les textbox ... du div territoire sont invisibles.
Lorsque l'on clique sur le checkbox "territoire", la fonction affiche est appelée et met l'attribut du div "territoire" à visible. En fait le prob c'est que tous les éléments de cet attribut de se mettent pas visibles!
Dans le div "territoire" il y a en fait deux textbox avec chacun un nom, les noms s'affichent bien (et s'effacent quand on clique sur département) mais pas les textbox??? ça marche sous IE.
Vous auriez pas une idée de pourquoi ça lui plaît pas à Netscape!

Reply

Marsh Posté le 24-08-2001 à 15:46:54    

s'il vous plaît, je m'en sert dans plusieurs pages et j'ai à chaque fois le problème, merci.
 
Ce serait hyper sympa quoi, vous pourriez devenir mon copain quoi!:)
 
Nan! bouh :( :(

Reply

Marsh Posté le 24-08-2001 à 19:04:07    

Bjour,
 
Moi je dirais que ton script est assez étonnant
tu diférencie les réactions de ton script par
des tests : document.layers(pour NN4.x) document.all (pour IE)...
Mais la réaction qui est fontction de ces tests est la même,
CAD visible ou hidden, tu change juste la facon d'appeller
l'élément. Mais sur NN pour changer la visibilité d'un div
la valeur est hide ou show... pour NN6 je sé pas il faudrait voir.
Bref a mon avis cherche plutot de ce côté la..
 
Mes deux centimes :):):)

Reply

Marsh Posté le 27-08-2001 à 09:51:08    

C'est pas étonnant, c'est pour identifier le navigateur et utiliser la méthode correspondante.

Reply

Marsh Posté le 27-08-2001 à 12:25:40    

Si tu n'as pas encore résolu ton problème,
je te suggère de relire attentivement ma
réponse, j'ai l'impression que tu t'es arretté
a la première phrase.
 
Cordialement

Reply

Marsh Posté le 27-08-2001 à 13:54:12    

Ben en fait mon script est adapté d'un exemple que j'ai trouvé et ça marchais quand je n'utilisais pas les tableaux, à savoir ce script:
<HTML>
<BODY>
<script>
function affiche(){
       if(document.layers){
           document.territoire.visibility="visible";
       }
       if(document.all){
           document.all.territoire.style.visibility="visible";
       }
       if(!document.all && document.getElementById){
           document.getElementById("territoire" ).style.visibility="visible";
       }
  }
function efface(){
       if(document.layers){
           document.territoire.visibility="hidden";
       }
       if(document.all){
           document.all.territoire.style.visibility="hidden";
       }
       if(!document.all && document.getElementById){
           document.getElementById("territoire" ).style.visibility="hidden";
       }
  }
</script>
<CENTER>
   <B><H1><FONT COLOR=#FF0033>Création d'une carte - Définition du territoire</FONT></H1></B>
</CENTER>
    <FORM name="formulaire" action="carteliste.php">
            <input type="image" SRC="france.gif" border="0"><br>
            <input type="radio" name="choixdept" onclick="efface();" value="dept" checked>Un département<br>
            <input type="radio" name="choixdept" onclick="affiche();" value="region" >Un territoire<br>
            <div id="territoire" style="position:relative;background-color:#FFFFFF;visibility:hidden">
            Rayon du territoire (en km):<input type="text" name="rayon" value="150"><br>
            Centrer sur la commune (Nom): <input type="text" name="commune"><br>
            </div>
    </FORM>
</BODY>
</HTML>
 
Mais on dirais qu'il aime pas que le div soit dans un tableau??

Reply

Marsh Posté le 27-08-2001 à 16:21:29    

<HTML>
 
<HEAD>
 
<SCRIPT>
 
function affiche(){
 if(document.layers){
  document.territoire.visibility="show";
 }
 if(document.all){
  document.all.territoire.style.visibility="visible";
 }
 if(!document.all && document.getElementById){
  document.getElementById("territoire" ).style.vi
sibility="visible";
 }
}
 
function efface(){
 if(document.layers){
  document.territoire.visibility="hide";
 }
 if(document.all){
  document.all.territoire.style.visibility="hidden";
 }
 if(!document.all && document.getElementById){
  document.getElementById("territoire" ).style.vi
sibility="hidden";
 }
}
 
</SCRIPT>
 
</HEAD>
 
<BODY>
 
<CENTER>
 <B><H1><FONT COLOR=#FF0033>Création d'une carte - Définition du territoire</FONT></H1></B>
</CENTER>
 
<FORM name="formulaire">
 <INPUT TYPE="image" SRC="france.gif" BORDER="0"><BR>
 <INPUT TYPE="radio" NAME="choixdept" onclick="efface();" VALUE="dept" CHECKED>Un département<BR>
 <INPUT TYPE="radio" NAME="choixdept" onclick="affiche();" VALUE="region" >Un territoire<BR>
</FORM>
 
<DIV ID="territoire" STYLE="position:relative;background-color:#FFFFFF;visibility:hidden">
 <FORM  NAME="form2" ACTION="carteliste.php">
  Rayon du territoire (en km): <INPUT TYPE="text" NAME="rayon" value="150"><BR>
  Centrer sur la commune (Nom): <INPUT TYPE="text" NAME="commune">
 </FORM>
</DIV>
 
</BODY>
 
</HTML>
 
 
Hopla,
 
parce qu'en fait NN recrée un nouvel objet document
a chaque div, donc ton formulaire se retrouve a cheval
sur deux document, et netscape ne prends que le premier
en compte... Donc pas de champs visibles dans ta div...
 
Ah bin la c'est mieux nan ?? :D:D

Reply

Marsh Posté le 27-08-2001 à 16:25:16    

cest quoi

Citation :

getElementById


 
 :??:  :??:

Reply

Marsh Posté le 27-08-2001 à 17:44:26    

Merci, je vais essayer ça ;) SYMPA de m'aider jusqu'au bout!

Reply

Sujets relatifs:

Leave a Replay

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