Probleme avec mon code avec firefox et opera [Résolu]

Signaler
Messages postés
6
Date d'inscription
jeudi 2 septembre 2010
Statut
Membre
Dernière intervention
5 septembre 2010
-
Messages postés
6
Date d'inscription
jeudi 2 septembre 2010
Statut
Membre
Dernière intervention
5 septembre 2010
-
bonjour (mon clavier et en norvegien, desole ) , J ai u probleme avec mon code , il marche parfaitment avec safari, chrome,IE mais pas avec firefox et opera ainsi aue seamonmkey...bref C'est un code tres simple qui qui re-ecrit les option d'une SELECT list/menu et l'affiche quand la precedente change, tout marche bien... sauf il ne re-ecrit pas les options des listes avec firefox, par contre il les affiche vide.
voici tout le code sans le Body, et j'ai mit en evidence le probleme. merci de m'aider.

<script language="javascript">
//(arrays are empty for space)
var sub_cat_array = new Array(); //1st array for 2nd list
var sub_cat_array2 = new Array(); //2nd array for 3rd list

window.onload=function(){
document.getElementById("hidden_elements").style.display="none";
document.getElementById("hidden_elements2").style.display="none";
document.getElementById("markedslist").onchange=selcted;
document.getElementById("subcat1").onchange=selcted2;
    }
    
function selcted(){           document.getElementById("hidden_elements").style.display="none";
document.getElementById("hidden_elements2").style.display="none";
if(document.getElementById("markedslist").value !="all"){
document.getElementById("hidden_elements").style.display="block";
}else{    
        document.getElementById("hidden_elements").style.display="none";
        document.getElementById("hidden_elements2").style.display="none";
        }
        var markedslist=this.value;
        var sub_cat=document.getElementById("subcat1");    
        sub_cat.options.length=0;

//PROBLEME COMMENCE ICI
 for(var i=0;i< sub_cat_array.length; i++){
 var st = sub_cat_array[i][0];
        if(st==markedslist){
        var opt = new Option(sub_cat_array[i][1]);;
                opt.value=sub_cat_array[i][2];
                try{
                    sub_cat.add(opt,opt.value);
                    }catch(e){
                        sub_cat.add(opt);
                        }
                }
            
            }
        }
// ET FINIT ICI c'estla meme pour la function selcted2 precedent -->
 

    function selcted2(){
        if(document.getElementById("subcat1").value != "all"){
        document.getElementById("hidden_elements2").style.display="block";
        }else{    document.getElementById("hidden_elements2").style.display="none";
        }    
            var subcat1=this.value;
        var sub_cat2=document.getElementById("subcat2");    
        sub_cat2.options.length=0;
        
        for(var i=0;i< sub_cat_array2.length; i++){
            var st2 = sub_cat_array2[i][0];
            if(st2==subcat1){
                var opt2 = new Option(sub_cat_array2[i][1]);
                opt2.value=sub_cat_array2[i][2];
                try{
                    sub_cat2.add(opt2,opt2.value);
                    }catch(e){
                        sub_cat2.add(opt2);
                        }
                }
            
            }
        }
</script>

PS: je peut mettre le code du body mais je ne pense pas que ce soit nessescaire...

7 réponses

Messages postés
6
Date d'inscription
jeudi 2 septembre 2010
Statut
Membre
Dernière intervention
5 septembre 2010

Désolé.... voici la reponse plus explicite:

il fallait ecrire :
try{
sub_cat2.options[sub_cat2.length] = new Option(sub_cat_array2[i][1],sub_cat_array2[i][2])
}catch(e){
sub_cat.add(opt,opt.value);

}

au lieu de:
try{
sub_cat.add(opt,opt.value);
}catch(e){
sub_cat.add(opt);
}
pour le 2 FUNCTIONS selcted() and selcted2()
merci!
Messages postés
6
Date d'inscription
jeudi 2 septembre 2010
Statut
Membre
Dernière intervention
5 septembre 2010

desolé une petite erreur:
il faut enlever le "2" de sub_cat2 pour cet example ci-dessus ...
Messages postés
6
Date d'inscription
jeudi 2 septembre 2010
Statut
Membre
Dernière intervention
5 septembre 2010

Voici le code du body si besoin:c'est un fichier php qui est incles dans la page principal, don il n'y a pas les balise <HEAD>

<form id="form1" name="form1" method="post" action="">

images/sok.jpg" width="70" height="50" />,
<select name="groupe1" class="listSize" id="markedslist">
<option value="all">Alle rubrikker</option>
<option  value="ein">Eiendom</option>
<option value="bil">Bill</option>
<option  value="boa">Båt</option>
<option value="job">Jobb</option>
<option  value="tor">Torget</option>
</select>,
<select class="listSize" name="subcat1" size="1" id="subcat1">
</select>,
<select class="listSize" name="subcat2" size="1" id="subcat2">
</select>,
,

----


</form>
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
mon clavier et en norvegien, desole
je te rassures cela ne se voit pas ;O°)

PS: je peut mettre le code du body mais je ne pense pas que ce soit nessescaire...
juste une partie, pas 1000 lignes, cela peut aider à la compréhension du problème et montre l'appel de la fonction!

;O)
Messages postés
6
Date d'inscription
jeudi 2 septembre 2010
Statut
Membre
Dernière intervention
5 septembre 2010

D'åccord ,le clavier nørwegien c'etait pøur dire øublier les åccents pour le fråncais.
et pour le BODY , j'ai juste mit la <Form>...merci. mais tout cela ne me dit pas pourquoi ca ne marche dans certain navigateur et pas les autres
Messages postés
6
Date d'inscription
jeudi 2 septembre 2010
Statut
Membre
Dernière intervention
5 septembre 2010

la reponse est
 sub_cat.options[sub_cat.length] = new Option(sub_cat_array[i][1],sub_cat_array[i][2]);

au lieu de
sub_cat2.add(opt2,opt2.value);

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
nos messages précédents ce sont croisés...

pas sur d'avoir tout compris mais si j'en crois
...la reponse est ...
c'est que cela baigne, dans ce cas mets ta réponse en réponse acceptée...
;O)