Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466

    Quando faccio click ul check box mi lancia una funzione, ma non mi funziona, xè?

    Finalmente grazie agli aiuti del forum sono riuscito a fare quello che mi serviva però nonriesco a risolvere questo errore.

    Ho il seguente codice:


    codice:
    <script>
    
    function prezzoTot(){
    	tot=0;idd='';
    	for(i=1;i<4;i++){
    		currLine=0;
    		if(!(eval("document."+formName+".campoH"+(i)+".value")=='')) eval("currLine=document."+formName+".campoH"+(i)+".value");
    		tot=parseFloat(tot)+parseFloat(currLine);
    	}
    	num = Math.round(tot*100)/100;
    	str=""+num;
    	if(str.indexOf(".")<0) str=str+".00";
    	if (str.length-str.indexOf(".")==2) str=str+"0";
    	document.getElementById("prezzoTot").innerHTML = '€ '+str;
    }
    
    function molt(f,g) { 
    c1=parseFloat("0"+f.elements['campoF'+g].value); 
    c2=parseFloat("0"+f.elements['campoG'+g].value); 
    ris=c1*c2;
    	num = Math.round(ris*100)/100;
    	str=""+num;
    	if(str.indexOf(".")<0) str=str+".00";
    	if (str.length-str.indexOf(".")==2) str=str+"0";
    	f.elements['campoH'+g].value=str; 
    } 
    
    
    
    </script>
    
    <BODY>
    <script>formName='formName';</script>
    <FORM NAME="formName">
    
    <TABLE>
    <TR>
    	<TD><input type="text" name="campoF1" onBlur='molt(this.form,this.name.charAt(this.name.length-1));prezzoTot();'></TD>
    	<TD><input type="text" name="campoG1" onBlur='molt(this.form,this.name.charAt(this.name.length-1));prezzoTot();'></TD>
    	<TD><input type=text name =campoH1 readonly></TD>
    	<TD><INPUT TYPE="checkbox" NAME="check1" onclick="this.form.campoF1.value='0';prezzoTot();"></TD>
    </TR>
    <TR>
    	<TD><input type="text" name="campoF2" onBlur='molt(this.form,2);prezzoTot();'></TD>
    	<TD><input type="text" name="campoG2" onBlur='molt(this.form,2);prezzoTot();'></TD>
    	<TD><input type="text" name="campoH2"></TD>
    	<TD><INPUT TYPE="checkbox" NAME="check2" onclick="this.form.campoF2.value='0';prezzoTot();"></TD>
    </TR>
    <TR>
    	<TD><input type="text" name="campoF3" onBlur='molt(this.form,3);prezzoTot();'></TD>
    	<TD><input type="text" name="campoG3" onBlur='molt(this.form,3);prezzoTot();'></TD>
    	<TD><input type="text" name="campoH3"></TD>
    	<TD><INPUT TYPE="checkbox" NAME="check3" onclick="this.form.campoF3.value='0';prezzoTot();"></TD>
    </TR>
    <TR>
    	<TD><input type="text" name="campoF4" onBlur='molt(this.form,4);prezzoTot();'></TD>
    	<TD><input type="text" name="campoG4" onBlur='molt(this.form,4);prezzoTot();'></TD>
    	<TD><input type="text" name="campoH4"></TD>
    	<TD><INPUT TYPE="checkbox" NAME="check4" onclick="this.form.campoF4.value='0';prezzoTot();"></TD>
    </TR>
    </TABLE>
    
    
    
    
    Totale: <span id=prezzoTot align=right>€ 0.00</span>
    </form>
    In pratica nelle prime due caselle vengono inseriti dei numeri che sono moltiplicati fra di loro, il risultato èp inserito nella terza casella.

    C' è una funzione che mi calcola il totale delle varie righe.

    Io vorrei che quando clicco sul check box oltre mettermi a zero un valore mi ricalcolasse anche il totale aggiornato.

    Non me lo fa e non capisco dove sia l' errore.

    Grazie, MC

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    beh... prova

    function prezzoTot(){
    tot=0;idd='';
    for(i=1;i<4;i++){
    currLine=0;
    if(document[formName].elements["campoH"+i].value!='') currLine=document[formName].elements["campoH"+i].value;
    tot+=parseFloat(currLine);
    }
    num = Math.round(tot*100)/100;
    str=""+num;
    if(str.indexOf(".")<0) str=str+".00";
    if(str.length-str.indexOf(".")==2) str=str+"0";
    document.getElementById("prezzoTot").innerHTML = '€ '+str;
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Ho provato con la tua ma continua a non aggiornarmi il totale

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    a me lo aggiorna... ma non capisco molto l'ultilità, visto che quando i campi che vengono moltiplicati perdono il focus viene già fatto il tot..

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    A me serve che quando uno fa click sul check box oltre mettere a 0 il primo campo mi rifaccia anche il totale questo perchè nell' applicazione vera quando si clicca sul check la riga diviene rossa e vuol dire che sarà cancellata e di conseguenza ho bisogno di avere aggiornato il totale.

    Poi trvo scomodo che uno per riavere il totale debba passare da un campo all' altro.

    Forse mi sono spiegato male, sepro tu abbia capito ugualmente.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Provo a spiegarmi meglio, supponima che io inserisca i valori
    campo1 campo2 campo3
    2 3 quindi 6
    4 2 quindi 8
    1 2 quindi 2
    3 3 quindi 9

    Il totale è 25

    Se io clicco sul primo check box la situazione diviene:

    campo1 campo2 campo3
    0 3 quindi 0
    4 2 quindi 8
    1 2 quindi 2
    3 3 quindi 9

    Ed il totale è ancora 25 mentre dovrebbe essere 19, questo succede perchè per qualche motivo al click sul check box la funzione prezzoTot non vien eseguita, almeno penso.

    Spero di essere stato + chiaro

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Ho risolto bisognava fare così:

    <INPUT TYPE="checkbox" NAME="check1" onclick="this.form.campoF1.value='0';molt(this.for m,this.name.charAt(this.name.length-1));prezzoTot();">

    Grazie, Mc

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 © 2024 vBulletin Solutions, Inc. All rights reserved.