Visualizzazione risultati 1 fino 4 di 4

Discussione: aiuto per un js

  1. #1
    Guest

    Question js: modificare i valori di un campo di testo a seconda delle selezioni sui combo

    Titolo >> js: modificare i valori di un campo di testo a seconda delle selezioni sui combo

    ciao a tutti, cerco un aiuto perché non so usare javascript e in questo caso ne ho bisogno.
    Ho un form con alcuni combo (DURATATM_1,2,3) da cui l'utente seleziona un numero, voglio che nel cambiare ciascuno di essi compaia in un campo di testo (DURATASM15) la somma numerica dei valori numerici selezionati (quindi se ha selezionato 3,5,6 deve comparire 14 - e non 356!).

    ecco ciò che ho scritto (ovviamente non funziona, ma non so come farlo funzionare...):


    <script language="JavaScript">
    function SommaValori(form, camposomma, vlselects){
    var valorefinale='';
    for (var i=1;i<4;i++){
    valorefinale=valorefinale+document[form][vlselects+i].value;
    }

    var oggettosomma=document[form][camposomma];

    oggettosomma.value=valorefinale;
    }
    </script>
    <form action="" name="FORM15" method="post" enctype="text/plain" onChange="SommaValori(FORM15, DURATASM15, DURATATM_)">
    <select name="DURATATM_1">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    </select><br>
    <select name="DURATATM_2">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    </select><br>
    <select name="DURATATM_3">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    </select><br>
    <input type="text" name="DURATASM15" value="56" disabled>
    </form>



    Osservazioni:
    1. Il js dovrebbe funzionare con diversi form simili presenti nella stessa pagina, e dovrebbe stare tra i tag <body>
    2. nei form ci sono anche altri campi che non vengono coinvolti

    grazie mille per l'aiuto
    Andrea
    Ultima modifica di respect : 10-09-2004 alle ore 15.33.38

  2. #2
    Guest

    Predefinito

    ..proprio nessun suggerimento? :(

  3. #3
    Guest

    Predefinito

    Prova questo

    <script language="JavaScript">
    function SommaValori(formname, camposomma, vlselects){
    formx = eval("document."+formname);
    valorefinale = 0;
    for (i = 1; i < 4; i++) {
    nomecampo = eval('vlselects+i');
    valorefinale += Number(eval("formx."+nomecampo+".value"));
    }
    eval("formx."+camposomma+".value = "+valorefinale);
    }
    </script>


    <form action="" name="FORM15" method="post" enctype="text/plain" >
    <select name="DURATATM_1" onChange="SommaValori('FORM15', 'DURATASM15', 'DURATATM_')">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    </select><br>
    <select name="DURATATM_2" onChange="SommaValori('FORM15', 'DURATASM15', 'DURATATM_')">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    </select><br>
    <select name="DURATATM_3" onChange="SommaValori('FORM15', 'DURATASM15', 'DURATATM_')">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    </select><br>
    <input type="text" name="DURATASM15" value="56" disabled>
    </form>

  4. #4
    Guest

    Predefinito

    ok, è perfetto, grazie mille. Ora però ti chiederei un'ulteriore modifica. Il valorefinale che risulta è in realtà un numero di minuti: io vorrei far comparire ad esempio la scritta "1h35m" nel caso valorefinale valga 95... Sarà una scemenza ma non so farlo... Nel caso venisse "0h23m" vorrei che comparisse semplicemente "23m", mentre nel caso fosse "1h0m" vorrei che comparisse "1h".

    thanks

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •