Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [JS]Uno strano errore...

    Salve a tutti ragazzi, stavo facendo un esercizio per impratichirmi con il javascript, ma mi ritorna una cosa strana...
    Prima vi posto il codice e poi vi dico cosa mi fa:

    codice:
    //Questa e' l'intestazione del programma
    <script language="javascript">
    <!--
    var gruppi = new Array(11);
    		
    	for (count =0;count<gruppi.lenght;count++){
    		gruppi[count] =" ";
    	}
    	
    	function agg(nom, vot){
    		switch (vot){
    			case "0":
    				gruppi[0] += nom + " ";
    				window.alert('Che cane!!!');
    				break;
    			case "1":
    				gruppi[1] += nom + " ";
    				break;
    			case "2":
    				gruppi[2] += nom + " ";
    				break;
    			case "3":
    				gruppi[3] += nom + " ";
    				break;			
    			case "4":
    			 	gruppi[4] += nom + " ";
    			 	break;
    			case "5":
    				gruppi[5] += nom + " ";
    				break;
    			case "6":
    				gruppi[6] += nom + " ";
    				break;
    			case "7":
    				gruppi[7] += nom + " ";
    				break;
    			case "8":
    				gruppi[8] += nom + " ";
    				break;
    			case "9":
    				gruppi[9] += nom + " ";
    				break;
    			case "10":
    				gruppi[10] += nom + " ";
    				break;
    			default:
    				window.alert('non intendo');
    		}
    	}
    	function est(vot){
    		var el = gruppi[vot];
    		return el;
    	}
        //-->
    </script>
    
    //E qui e' come utilizzo il codice sopra:
    <form name="compito">
    <input type="text" name="a" /> Nome alunno 
    
    <input type="text" name="v" /> Voto  
    
    <input type="button" value="Inserisci" onclick=" agg(a.value, v.value);" />
    
    
    <hr />
    <input type="text" name="gr" /> Voto
    
    <textarea name="al"></textarea>
    
    <input type="button" name="con" value="Controlla" onclick="al.value = est(gr.value);"/>
    </form>
    Brevemente, e' una semplice pagina che chiede che voto ha preso un alunno e lo inserisce in un array. Per richiamare gli alunni si utilizza il voto che gli accomuni da inserire nella textarea; la cosa strana e' che quando clicco sul pulsante controlla, si mi vengono i nomi degli alunni, ma preceduti da un undefined!!!!
    Ovvero all' interno del textarea:
    undefined<nomealunno> <nomealunno>
    Ho anche tentato di utilizzare li for per inizializzare tutti gli elementi dell'array ma non ha funzionato...
    Qualcuno ha qualche idea???

    Grazie in anticipo per le risposte!!!

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    prova a vedere se questo va bene:

    codice:
    <script type="text/javascript">
    <!--
    var gruppi = new Array(10);
    		
    	for (i=0; i<10; i++){
    		gruppi[i] = new Array();
    	}
    	
    	function agg(){
        
           var alunno = document.getElementById('alunno').value;
           if (alunno == "") return;
        
           
           var indice = document.getElementById('voto_alunno').selectedIndex;
           var voto = parseInt(document.getElementById('voto_alunno').options[indice].value, 10);
           
           if (voto == 0) alert("cha cane");
           
           document.getElementById('alunno').value = "";
           gruppi[voto].push(alunno);
    	}
        
    	function controlla(){
           var indice = document.getElementById('voto_alunno').selectedIndex;
           var voto = parseInt(document.getElementById('voto_alunno').options[indice].value, 10);
           
           document.getElementById('lista').value = gruppi[voto].toString();
           
    	}
        //-->
    </script>
    
    Nome alunno <input type="text" id="alunno" />
    
    Voto <select id="voto_alunno"> 
        <option value="0">0</option>
        <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" selected="selected">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
    </select>
    
    <input type="button" value="Inserisci" onclick="agg();" />
    
    <hr />
    
    Voto da controllare
    <select id="voto_lista"> 
        <option value="0">0</option>
        <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" selected="selected">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
    </select>
    
    Lista alunni
    
    <textarea id="lista"></textarea>
    
    <input type="button" name="con" value="Controlla" onclick="controlla();"/>
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    ciao,
    hai commesso un errore comune, di tipo grammaticale. la proprietà dell'array lunghezza, non è lenght ma bensì length. Vedrai che così funzionerà tutto

    Se vuoi impratichirti potresti studiare un codice migliore per questa applicazione con, ad esempio, delle espressioni regolari per controllare la validità dei valori inseriti e prendendo spunto dal codice di fcaldera

  4. #4
    Vi ringrazio del vostro aiuto, ma sinceramente dal codice di fcaldera mi sembra molto complicato per le mie conoscenze; sopratutto perche' non conosco tutte quei metodi e propieta'.
    Dove potrei trovare informazioni in italiano riguardanti quelle propieta'?
    Grazie ancora!

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.