Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Combo Dinamiche - valore di default al caricamento

    ciao a tutti,
    sto utilizzando il seguente codice per popolare dinamicamnete una serie di combo box:

    --------------------------------------------------------------------------------------
    <script language="JavaScript" type="text/javascript">
    <!--

    /*
    *** Multiple dynamic combo boxes
    *** by Mirko Elviro, 9 Mar 2005
    *** Script featured and available on JavaScript Kit (http://www.javascriptkit.com)
    ***
    ***Please do not remove this comment
    */

    // This script supports an unlimited number of linked combo boxed
    // Their id must be "combo_0", "combo_1", "combo_2" etc.
    // Here you have to put the data that will fill the combo boxes
    // ie. data_2_1 will be the first option in the second combo box
    // when the first combo box has the second option selected


    // first combo box

    data_1 = new Option("1", "$");
    data_2 = new Option("2", "$$");

    // second combo box

    data_1_1 = new Option("11", "-");
    data_1_2 = new Option("12", "-");
    data_2_1 = new Option("21", "--");
    data_2_2 = new Option("22", "--");
    data_2_3 = new Option("23", "--");
    data_2_4 = new Option("24", "--");
    data_2_5 = new Option("25", "--");

    // third combo box

    data_1_1_1 = new Option("111", "*");
    data_1_1_2 = new Option("112", "*");
    data_1_1_3 = new Option("113", "*");
    data_1_2_1 = new Option("121", "*");
    data_1_2_2 = new Option("122", "*");
    data_1_2_3 = new Option("123", "*");
    data_1_2_4 = new Option("124", "*");
    data_2_1_1 = new Option("211", "**");
    data_2_1_2 = new Option("212", "**");
    data_2_2_1 = new Option("221", "**");
    data_2_2_2 = new Option("222", "**");
    data_2_3_1 = new Option("231", "***");
    data_2_3_2 = new Option("232", "***");

    // fourth combo box

    data_2_2_1_1 = new Option("2211","%")
    data_2_2_1_2 = new Option("2212","%%")

    // other parameters

    displaywhenempty=""
    valuewhenempty=-1

    displaywhennotempty="-select-"
    valuewhennotempty=0


    function change(currentbox) {
    numb = currentbox.id.split("_");
    currentbox = numb[1];

    i=parseInt(currentbox)+1

    // I empty all combo boxes following the current one

    while ((eval("typeof(document.getElementById(\"combo_"+i +"\"))!='undefined'")) &&
    (document.getElementById("combo_"+i)!=null)) {
    son = document.getElementById("combo_"+i);
    // I empty all options except the first one (it isn't allowed)
    for (m=son.options.length-1;m>0;m--) son.options[m]=null;
    // I reset the first option
    son.options[0]=new Option(displaywhenempty,valuewhenempty)
    i=i+1
    }


    // now I create the string with the "base" name ("stringa"), ie. "data_1_0"
    // to which I'll add _0,_1,_2,_3 etc to obtain the name of the combo box to fill

    stringa='data'
    i=0
    while ((eval("typeof(document.getElementById(\"combo_"+i +"\"))!='undefined'")) &&
    (document.getElementById("combo_"+i)!=null)) {
    eval("stringa=stringa+'_'+document.getElementById( \"combo_"+i+"\").selectedIndex")
    if (i==currentbox) break;
    i=i+1
    }


    // filling the "son" combo (if exists)

    following=parseInt(currentbox)+1

    if ((eval("typeof(document.getElementById(\"combo_"+f ollowing+"\"))!='undefined'")) &&
    (document.getElementById("combo_"+following)!=null )) {
    son = document.getElementById("combo_"+following);
    stringa=stringa+"_"
    i=0
    while ((eval("typeof("+stringa+i+")!='undefined'")) || (i==0)) {

    // if there are no options, I empty the first option of the "son" combo
    // otherwise I put "-select-" in it

    if ((i==0) && eval("typeof("+stringa+"0)=='undefined'"))
    if (eval("typeof("+stringa+"1)=='undefined'"))
    eval("son.options[0]=new Option(displaywhenempty,valuewhenempty)")
    else
    eval("son.options[0]=new Option(displaywhennotempty,valuewhennotempty)")
    else
    eval("son.options["+i+"]=new Option("+stringa+i+".text,"+stringa+i+".value)")
    i=i+1
    }
    //son.focus()
    i=1
    combostatus=''
    cstatus=stringa.split("_")
    while (cstatus[i]!=null) {
    combostatus=combostatus+cstatus[i]
    i=i+1
    }
    return combostatus;
    }
    }

    //-->
    </script>

    <form>
    <select name="combo0" id="combo_0" onChange="change(this);" style="width:200px;">
    <option value="value1">-select-</option>
    <option value="value2">1</option>
    <option value="value3">2</option>

    </select>



    <select name="combo1" id="combo_1" onChange="change(this)" style="width:200px;">
    <option value="value1"> </option>
    </select>



    <select name="combo2" id="combo_2" onChange="change(this);" style="width:200px;">
    <option value="value1"> </option>
    </select>



    <select name="combo3" id="combo_3" onChange="change(this);" style="width:200px;">
    <option value="value1"> </option>

    </select>

    </form>

    <p align="center"><font face="arial" size="-2">This free script provided by</font>

    <font face="arial, helvetica" size="-2"><a href="http://javascriptkit.com">JavaScript
    Kit</a></font></p>
    ---------------------------------------------------------------------------------------

    funziona tutto alla perfezione, ma vorrei che al caricamento della pagina, CIASCUNA lista mostrasse il Primo VALORE presente, anzichè la dicitura "-select-".

    qualcuno può aiutarmi? Grazie

  2. #2
    mi spiego meglio,
    vorrei che di default, la pagina si caricasse con il primo valore di ciascuna lista.

  3. #3
    un suggerimento sarebbe veramente gradito...

  4. #4
    Originariamente inviato da Hendrix-N
    un suggerimento sarebbe veramente gradito...

  5. #5
    codice:
    <body onload="funzione();">
    dove funzione è:

    codice:
    function funzione(){
    document.nomeform.combo1.selectedIndex=document.nomeform.combo2.selectedIndex=document.nomeform.combo3.selectedIndex=document.nomeform.combo4.selectedIndex=0;
    }
    ciao

  6. #6
    grazie per la risposta, ma...
    la "funzione()" non funziona.
    il browser mi restituisce l'errore: "document.pagamento.combo0" è nullo o non è un oggetto,
    dove "pagamento" è l'ID del form e "combo0" è l'ID della prima combo.

  7. #7
    adesso sono riuscito ad applicare la funzione senza errori, ma continua a non dare il risultato sperato...

  8. #8
    Originariamente inviato da Hendrix-N
    adesso sono riuscito ad applicare la funzione senza errori, ma continua a non dare il risultato sperato...

  9. #9
    potresti provare così ma non credo che la cosa sia molto differente:

    codice:
    function funzione(){
     document.nomeform.combo1.selectedIndex=0;
     document.nomeform.combo2.selectedIndex=0;
     document.nomeform.combo3.selectedIndex=0;
     document.nomeform.combo4.selectedIndex=0;
    }
    ciao

  10. #10
    Utente di HTML.it L'avatar di hcka
    Registrato dal
    Oct 2002
    Messaggi
    435
    A parte il fatto che le combo si chiamano combo0...3 (quindi dovresti avere avuto un errore generato)...

    Se ho capito te vuoi che non venga selezionato il "-select-", quindi puoi tenere la funzione di var, aggiustandola così:

    codice:
    <body onload="funzione();">
    codice:
    function funzione()
    {
      document.nomeform.combo0.selectedIndex = document.nomeform.combo1.selectedIndex = document.nomeform.combo2.selectedIndex = document.nomeform.combo3.selectedIndex = 1;
    }
    Facci sapere...

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.