Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: Somma Textbox Dinamici

  1. #1

    Somma Textbox Dinamici

    Salve a tutti,

    ho trovato sul forum uno script che permette la somma di campi testo,
    il mio problema è che non so a priori quanti campi testo ho da sommare potrebbero essere da 1 a 50.

    Ecco il codice:

    codice:
    <HTML>
    <HEAD>
    <script language="javascript">
    function SoloNumeri(obj){
    	var segno=''
    	var RE = /^-/
    	if(RE.test(obj.value)){
    		segno='-'
    		obj.value=obj.value.replace(RE,'')
    	}
    	RE = /\d*[,.]?\d*/
    	if(obj.value.match(RE)==null)
    		obj.value=''
    	else{
    		var numero = obj.value.match(RE)[0]
    		obj.value=segno+numero
    	}
    }
    function Somma(tt){
    	var ff = tt.form
    	SoloNumeri(tt);
    	var pre = tt.name.substr(0,1)
    	var somma = 0
    	for(i=0;i<3;i++)
    		if(ff.elements[pre+(i+1)].value!='')
    			somma+=parseInt(ff.elements[pre+(i+1)].value,10)
    	ff.elements[pre+'_tot'].value=somma
    }
    </script>
    </HEAD>
    <BODY>
    <form name="NomeForm">
    <table>
      <tr>
        <td>
        <input type="text" name="a1" onchange="Somma(this);">
    
        <input type="text" name="a2" onchange="Somma(this);">
    
        <input type="text" name="a3" onchange="Somma(this);">
    
        </td>
      </tr>
      <tr>
        <td>
        <input type="text" name="a_tot" readonly>
        </td>
      </tr>
    
    </table>
    </form>
    </BODY>
    </HTML>
    Pippo Giacalone
    giacalone@tin.it

  2. #2
    Prova

    codice:
    for (i=0;i<document.forms.elements.lenght;i++) {
    document.forms[0].elements[i].onchange=Somma(this)
    }
    Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi! (A.Einstein)

  3. #3
    Grazie Sora88,

    ma potresti adattarmi tu il codice perchè mi avanzano dei pezzi..... (non conosco javascript)
    Pippo Giacalone
    giacalone@tin.it

  4. #4
    allora ci provo ....

    non sapendo come adattare il tuo pezzo di codice ( ho provato a inserirlo ma mi da errore ) vi chiedo se è possibile modificare soltanto un numerino ( for(i=0;i< 3 ;i++) ) all'interno dello script valorizzando una variabile da una query ASP che mi restituisce la pagina <% CAMPI = Rs("CAMPI") %>


    <script language="javascript">
    function SoloNumeri(obj){
    var segno=''
    var RE = /^-/
    if(RE.test(obj.value)){
    segno='-'
    obj.value=obj.value.replace(RE,'')
    }
    RE = /\d*[,.]?\d*/
    if(obj.value.match(RE)==null)
    obj.value=''
    else{
    var numero = obj.value.match(RE)[0]
    obj.value=segno+numero
    }
    }
    function Somma(tt){
    var ff = tt.form
    SoloNumeri(tt);
    var pre = tt.name.substr(0,1)
    var somma = 0
    for(i=0;i< 3 ;i++)
    if(ff.elements[pre+(i+1)].value!='')
    somma+=parseInt(ff.elements[pre+(i+1)].value,10)
    ff.elements[pre+'_tot'].value=somma
    }
    </script>

    e non posso neanche contare tutti i campi presenti sul form perchè ci sono diversi campi che non c'entrano nulla con la somma, i campi da sommare sono a1 a2 a3 e così via

    pensate si possa fare ?
    Pippo Giacalone
    giacalone@tin.it

  5. #5
    nessuno che possa darmi un'aiuto ?
    Pippo Giacalone
    giacalone@tin.it

  6. #6
    non pensavo potesse essere così difficele....,
    Pippo Giacalone
    giacalone@tin.it

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Puoi modificare il mio script in due modi: fai scrivere il numero di elementi da ASP oppure lo rendi indipendente dal numero stesso...

    1 - :
    codice:
    	for(i=0;i<<%=rs("campi")%>;i++)
    2 - :
    codice:
    function Somma(tt){
    	var ff = tt.form
    	SoloNumeri(tt);
    	var pre = tt.name.substr(0,1)
    	var somma = 0
    	vai i=0;
    	while(ff.elements[pre+(i+1)]) {
    		if(ff.elements[pre+(i+1)].value!='')
    			somma+=parseInt(ff.elements[pre+(i+1)].value,10);
    		i++;
    	}
    	ff.elements[pre+'_tot'].value=somma
    }
    Il secondo provalo tu per me

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Grazie br1,

    ci provo subito
    Pippo Giacalone
    giacalone@tin.it

  9. #9
    Allora,

    il primo modo mi da errore

    codice:
    <% Campi = 3 %>
    <script language="javascript">
    
    function SoloNumeri(obj){
    	var segno=''
    	var RE = /^-/
    	if(RE.test(obj.value)){
    		segno='-'
    		obj.value=obj.value.replace(RE,'')
    	}
    	RE = /\d*[,.]?\d*/
    	if(obj.value.match(RE)==null)
    		obj.value=''
    	else{
    		var numero = obj.value.match(RE)[0]
    		obj.value=segno+numero
    	}
    }
    function Somma(tt){
    	var ff = tt.form
    	SoloNumeri(tt);
    	var pre = tt.name.substr(0,1)
    	var somma = 0
    	for(i=0;i< <%=campi%>; ;i++)
    		if(ff.elements[pre+(i+1)].value!='')
    			somma+=parseInt(ff.elements[pre+(i+1)].value,10)
    	ff.elements[pre+'_tot'].value=somma
    }
    </script>



    il secondo modo mi da errore sulla riga segnata i rosso
    codice:
    <script language="javascript">
    
    function SoloNumeri(obj){
    	var segno=''
    	var RE = /^-/
    	if(RE.test(obj.value)){
    		segno='-'
    		obj.value=obj.value.replace(RE,'')
    	}
    	RE = /\d*[,.]?\d*/
    	if(obj.value.match(RE)==null)
    		obj.value=''
    	else{
    		var numero = obj.value.match(RE)[0]
    		obj.value=segno+numero
    	}
    }
    
    function Somma(tt){
    	var ff = tt.form
    	SoloNumeri(tt);
    	var pre = tt.name.substr(0,1)
    	var somma = 0
    	vai i=0;
    	while(ff.elements[pre+(i+1)]) {
    		if(ff.elements[pre+(i+1)].value!='')
    			 somma+=parseInt(ff.elements[pre+(i+1)].value,10); 
    		i++;
    	}
    	ff.elements[pre+'_tot'].value=somma
    }
    
    
    </script>
    Pippo Giacalone
    giacalone@tin.it

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    scusa l'errore di stompa

    var i=0;

    Non ho capito che errore ti da' il primo...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.