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

    Funzione somma tra campi text

    Ho n elementi in un form che si chiamano

    codice:
    <input name="cost_tot18_primo_tipo1" type="text" value="...">
    <input name="cost_tot18_primo_tipo2" type="text" value="...">
    <input name="cost_tot18_primo_tipo3" type="text" value="...">
    <input name="cost_tot18_primo_tipo4" type="text" value="...">
    ecc
    <input name="cost_tot18_primo_tipon" type="text" value="...">
    nello stesso form ci sono campi simili che si chiamano in altra maniera

    codice:
    <input name="cost_tot18_secon_tipo1" type="text" value="...">
    <input name="cost_tot18_secon_tipo2" type="text" value="...">
    <input name="cost_tot18_secon_tipo3" type="text" value="...">
    <input name="cost_tot18_secon_tipo4" type="text" value="...">
    ecc
    <input name="cost_tot18_secon_tipon" type="text" value="...">
    alcuni di questi (sia tra i primi che tra i secondi) però possono essere "disabled"

    come posso fare le somme tra i campi primo_tipon e, allo stesso modo, tra i campi secon_tipon?
    www.sergiogandrus.it
    Il mio blog sull'informatica

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    con una funzione.....
    cosa vuoi esattamente....

    cost_tot18_primo_tipo1 + cost_tot18_secon_tipo1
    [...]

    oppure

    cost_tot18_primo_tipo1 + cost_tot18_primo_tipo2 + 3 + 4
    [...]

    ?
    cmq puoi fare con js....
    document.form.NOME_DEL_CAMPO.value + ....
    spero di essermi spiegato

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    cost_tot18_primo_tipo1 + cost_tot18_primo_tipo2 + 3 + 4
    questo

    mi chiedevo se c'era una funzione che escludesse dalla somma i campi che sono "disabled"
    www.sergiogandrus.it
    Il mio blog sull'informatica

  4. #4
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    con che attributo li reindi disabilitati?

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Solo uno schema:
    codice:
    var somma = 0;
    for(var i=0; i<...; i++) {
      var tt = document...elements["NOMECOMUNE"+i];
      if(!tt.disabled) somma += parseFloat(tt.value);
    }
    alert (somma);
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    mi restituisce NaN
    forse perchè i valori nei campi input sono formattati con il formato euro.
    Allora ho modificato così ma non esce neanche l'alert
    codice:
    function sum() {
    var somma = 0;
    for(var i=1; i<14; i++) {
      var tt = document.form1.elements["cost_tot18_primo_tipo"+i];
       valore = tt.value
       valore=valore.toString().replace(/\./g,"");
       valore=valore.toString().replace(/,/g,".");
       valore=parseFloat(valore)
      if(!tt.disabled) somma += valore;
    }
    alert (somma);
    }
    www.sergiogandrus.it
    Il mio blog sull'informatica

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ci sono un po' di operazioni inutili, che ti sistemo.
    codice:
    function sum() {
      var somma = 0;
      for(var i=1; i<14; i++) {
        var tt = document.form1.elements["cost_tot18_primo_tipo"+i];
        alert("sto operando su "+tt.name);
        if(!tt.disabled) {
          alert(tt.name+" e` abilitata");
          valore = tt.value.toString();
          alert("il campo contiene "+valore);
          valore = valore.replace(/\./g,"");
          valore = valore.replace(/,/g,".");
          somma += parseFloat(valore);
        }
      }
      alert (somma);
    }
    Ho inserito un po' di alert: sara` unpo' pedante, ma alcuni campi devi controllarli: vedi cosa rispondono i vari alert

    Nota che con quel ciclo i numeri dei campi vanno da 1 a 13.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Dice 'sto operando su cost_tot_primo1'
    poi 'sto operando su undefined'
    poi ancora 'undefined è abilitata'

    poi più nulla.

    Nella pagina possono essere presenti (come in questo caso) gli stessi campi con gli stessi nomi ma 'hidden'.

    Nota che con quel ciclo i numeri dei campi vanno da 1 a 13.
    Mi va bene: i campi vanno da 1 a 13
    www.sergiogandrus.it
    Il mio blog sull'informatica

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Campi con lo stesso nome formano una collezione: a quel punto puoi accedere tramite un vettore.

    Credo che la cosa piu` semplice sia razionalizzare i nomi; altrimenti occorre verificare se il nome e` unico e quindi procedere, ma occorre un loop ed un controllo in piu`.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Non basterebbe mettere un'altra condizione: escludere dalla somma i campi hidden?

    in vbscript metterei AND

    codice:
    if(!tt.disabled AND tt.type!='hidden')
    ma immagino che non sia così in JS.
    www.sergiogandrus.it
    Il mio blog sull'informatica

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.