Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    64

    onchange e appendchild non compatibili su IE

    ciao a tutti :
    ho uno script che ha due comportamenti diversi in base al browser
    su mozilla funziona mentre su IE no ....


    function sezione(){


    var oField=document.createElement("select");
    oField.setAttribute("id","sel");
    oField.setAttribute("name","sel");
    if(navigator.appName!="Microsoft Internet Explorer")
    {
    var option=document.createElement("option");
    var oText1=document.createTextNode("scegli:");
    option.setAttribute("disabled", "disabled");
    option.setAttribute("selected", "selected");
    option.setAttribute("value", "");
    option.appendChild(oText1);
    oField.appendChild(option);
    for(x in Menu){

    var option=document.createElement("option");
    option.setAttribute("value", x);
    var oText1=document.createTextNode(x);
    option.appendChild(oText1);
    oField.appendChild(option);
    }
    document.getElementById("d").appendChild(oField);
    var subsel=document.createElement("select");
    subsel.setAttribute("id","Sub");
    subsel.setAttribute("name","Sub");
    document.getElementById("d").appendChild(subsel);
    oField.setAttribute("onchange", " return aggiorna()");


    }



    else{

    var option=document.createElement("option");
    var oText1=document.createTextNode("scegli:");
    option.setAttribute("disabled", "disabled");
    option.setAttribute("selected", "selected");
    option.setAttribute("value", "");
    option.appendChild(oText1);
    oField.appendChild(option);
    for(x in Menu){

    var option=document.createElement("option");
    option.setAttribute("value", x);
    var oText1=document.createTextNode(x);
    option.appendChild(oText1);
    oField.appendChild(option);
    }
    document.getElementById("d").appendChild(oField);
    var subsel=document.createElement("select");
    subsel.setAttribute("id","Sub");
    subsel.setAttribute("name","Sub");
    document.getElementById("d").appendChild(subsel);


    oField.onchange= aggiorna();


    }questa funzione al click su un pulsante tipo button dovrebbe fare comparire due select la prima select e quella aggiorna la seconda tramite la funzione aggiorna che posto di seguito

    function aggiorna(){

    var sel=document.getElementById("sel");
    var subsel=document.getElementById("Sub");
    //Azzero il contenuto della seconda select
    for (var i = subsel.length - 1; i >= 0; i--)
    subsel.remove(i);

    var cat=sel.options[sel.selectedIndex].value;

    for(var i=1 ; i<Menu[cat].length ; i++ ){
    var opt1=document.createElement("OPTION");
    opt1.setAttribute("value" , Menu[cat][i]);
    var oText1=document.createTextNode(Menu[cat][i]);
    opt1.appendChild(oText1);
    document.getElementById("Sub").appendChild(opt1);

    }

    return true;}


    Su mozilla funziona correttamente mentre su IE no in quanto non aggiorna la seconda select e da un errore sul ciclo for dove viene resettata la select precedente.

    Qualcuno può aitarmi grazie in anticipo.

  2. #2
    Scusa, ma subsel.remove(i); che dovrebbe essere?

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: onchange e appendchild non compatibili su IE

    Originariamente inviato da ennioj82

    Su mozilla funziona correttamente mentre su IE no in quanto non aggiorna la seconda select e da un errore sul ciclo for dove viene resettata la select precedente.

    Qualcuno può aitarmi grazie in anticipo.
    Non so è per questo, ma IE non supporta option = "disabled". Probabilmente non centra niente e l'errore sta altrove, ma se l'attributo è un dato fondamentale va tenuto conto.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.