Pagina 4 di 4 primaprima ... 2 3 4
Visualizzazione dei risultati da 31 a 39 su 39
  1. #31
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Allora non hai neppure errori: il primo alert viene chiamato subito, appena entra nel loop per fare la somma.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  2. #32
    Non mi restituisce nessuno degli alert immessi nella funzione somma.

    Io clicco su Aggiungi e mi aggiunge effettivamente tutti i campi che voglio (e li posso rimuovere tranquillamente) senza errori.

    Immetto un importo nei sottocampi aggiunti e fin lì niente errori (ma niente somma).

    Se scrivo nel campo 1 o campo 2 vecchio allora JS "va in tilt" e mi da il classico:

    "Errore nella visualizzazione della pagina"

  3. #33
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    codice:
    function somma(ff) {
      alert("entrato nella funzione"); 
      var tot = 0;
      alert("ci sono "+campi.length+" campi da sommare");
      for(var i=0; i<campi.length; i++) {
    ... ecc
    Modifica la funzione ancora, ma se ancora non ti da` l'alert significa che ci sono altri problemi, non legati direttamente a questa funzione.

    Prima di provare a modificare i campi aggiunti, prova ad inserire dei dati nei campi vecchi (senza aggiungere campi); poi prova ad aggiungere un campo e modificare i campi vecchi (ancora senza inserire dati nei nuovi).

    NOTA: io per campi vecchi intendo quelli inseriti dall'HTML, per nuovi quelli inseriti dal JS.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #34
    NOTA: io per campi vecchi intendo quelli inseriti dall'HTML, per nuovi quelli inseriti dal JS.
    Ok si intendo anche io così

    Modifica la funzione ancora, ma se ancora non ti da` l'alert significa che ci sono altri problemi, non legati direttamente a questa funzione.
    D'accordo, in serata o al più tardi domattina provo! Grazie ancora!


  5. #35
    Allora... ho aggiornato la funzione così come mi hai detto:

    codice:
    var campi = new Array("campo1", "campo2" ); 
    
    function somma(ff) {
      alert("entrato nella funzione"); 
      var tot = 0;
      alert("ci sono "+campi.length+" campi da sommare");
      for(var i=0; i<campi.length; i++) {
        alert("sto per aggiungere il campo "+ff.elements[campi[i]].name);
        var c = ff.elements[campi[i]].value;
        alert("il suo value e` "+c);
        if(c=="") c="0";
        if(c=='NaN') {alert("Not A Number"); c=0;}
        tot += parseInt(c,10);
      }
      ff.totale.value = tot;
    }
    se metto un numero nel campo vecchio e tolgo il cursore, mi mostra gli alert:

    - "entrato nella funzione" e "ci sono 2 campi da sommare"

    poi aggiungo un campo nuovo (e non ci inserisco niente), modifico il campo vecchio e mi mostra gli alert:

    - "entrato nella funzione" e "ci sono 3 campi da sommare"

  6. #36
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E non da` errore? E gli alert all'interno del loop (sto per aggiungere ... / il suo value e` ...) li vedi?
    Allora quando ti da` l'errore?

    Prova a fare un po' di prove in varie combinazioni (modifica campi vecchi, modifica campi nuovi, ...) in ordine diverso.

    Essendo un errore legato agli oggetti su cui lavora il programma, occorre capire su quale oggetto trova l'errore.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #37
    Riepilogando:

    metto un valore nel campo vecchio e il browser mi da subito l'errore con il punto esclamativo ...
    tolgo il cursore e mi mostra gli alert

    - "entrato nella funzione" e "ci sono 2 campi da sommare"

    poi clicco sul bottone Aggiungi e mi da i seguenti alert:

    -> prima: campo1,campo2

    -> dopo: campo1,campo2,testo1


    Comunque gli alert

    sto per aggiungere ... / il suo value e` ...)

    non me li mostra!

  8. #38
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non e` che la pagina sia in rete per caso? o che la puoi mettere in un posto provvisorio?

    Non riesco a capire ...
    I casi sono tre: o c'e` un errore da qualche parte che non ho visto (magari in una parte della pagina che non abbiamno considerato), oppure io non capisco piu` niente, o ancora non me la racconti giusta.
    Io opto per la prima ipotesi, dato che tendo a scartare le altre due.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #39
    Quello che ho finora è questo:

    codice:
    <html>
    
    	<head>
    
    <script language="javascript" type="text/javascript">
    
    var campi = new Array("campo1", "campo2" ); 
    
    function somma(ff) {
      alert("entrato nella funzione"); 
      var tot = 0;
      alert("ci sono "+campi.length+" campi da sommare");
      for(var i=0; i<campi.length; i++) {
        alert("sto per aggiungere il campo "+ff.elements[campi[i]].name);
        var c = ff.elements[campi[i]].value;
        alert("il suo value e` "+c);
        if(c=="") c="0";
        if(c=='NaN') {alert("Not A Number"); c=0;}
        tot += parseInt(c,10);
      }
      ff.totale.value = tot;
    }
    
    var num=1;
    
    function accoda(){
    	if(document.createElement && document.getElementById && document.getElementsByTagName) {
    		// crea elementi
    		var oTr=document.createElement("TR");
    		var oTd1=document.createElement("TD");
    		var oTd2=document.createElement("TD");
    		var oTd3=document.createElement("TD");
    		var oTd4=document.createElement("TD");
    		var oField=document.createElement("INPUT");
    		var oText=document.createTextNode(""+num);
    
    		// setta attributi
      		oField.setAttribute("type","text");
    		oField.setAttribute("name","testo"+num);
    		oField.setAttribute("size","10");
    
    		// appendi al relativo padre
    		oTd1.appendChild(oField);
    		oTd2.appendChild(oText);
    		oTr.appendChild(oTd1);
    		oTr.appendChild(oTd2);
    		document.getElementById('tabella').getElementsByTagName('TBODY')[0].appendChild(oTr);
    
    		// incrementa variabile globale
        		alert("prima: "+campi);
        		campi.push("testo"+num); 
        		alert("dopo "+campi);
    		num++
    	}
    }
    
    function rimuovi(){
    	if(document.removeChild && document.getElementById && document.getElementsByTagName) {
    		// se non e' la prima riga
    		if(num>1){
    			// riferimento al tbody
    			var tb=document.getElementById('tabella').getElementsByTagName('TBODY')[0];
    			// riferimento all' ultimo TR
    			var lastTr=tb.getElementsByTagName('TR')[(tb.getElementsByTagName('TR').length)-1]
    
          			var fieldn = lastTr.getElementsByTagName('input')[0].name;
          			for(var i=0; i<campi.length; i++) {
            		   if(campi[i] == fieldn) campi.splice(i,1);
          			}
    
    			// rimuovi
    			tb.removeChild(lastTr);
    			// decrementa variabile globale
    			num--
    		}
    	}
    }
    
    </script>
    
    	</head>
    
    
    		<body>
    
    		<form name="modulo">
    
    			<table align="center">
    
    			<tr>
    			<td>Campo 1</td>
    			<td><input name="Campo1" maxLength="10" size="10" onblur="somma(this.form)" /> </td>
    			
    			<td><input name="Commento 1)" type="button" value="*" onClick="show_hide(this);"> </td>
    			<td><input name="Aggiungi" type="button" value="Aggiungi" onclick="accoda()"><input type="button" value="Rimuovi" onclick="rimuovi()"></td>
    			</tr>	
    
    
    			</table>
    
    			<form name="modulo">
    
    			<table align="center" id="tabella">
    			<tbody>
    			<tr>
    			<td></td>
    
    			</tr>
    			</tbody>
    			</table>			
    			</form>
    
    			<table align="center">
    
    			<tr>
    			<td>Campo 2</td>
    			<td><input name="Campo2" maxLength="10" size="10"  onblur="somma(this.form)" /> </td>
    			
    			<td><input name="Commento 2)" type="button" value="*" onClick="show_hide(this);"> </td>
    			<td><input name="Aggiungi" type="button" value="Aggiungi" onclick="accoda()"><input type="button" value="Rimuovi" onclick="rimuovi()"></td>
    			</tr>
    
    
    			<tr></tr>
    			<tr></tr>
    			<tr>
    			<td>TOTALE</td>
    			<td><input name="totale" type="text" maxLength="12" size="10" style="background:#FFFF00 ;" readonly></td>
    			</tr>
    			<tr></tr>
    
    			</table>
    
    		</body>
    
    		</form>
    
    </html>
    non ho ancora un posto dove metterla in rete...

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.