Visualizzazione risultati 1 fino 2 di 2

Discussione: [JS] Mancato passaggio in ciclo for?

  1. #1
    Guest

    Question [JS] Mancato passaggio in ciclo for?

    Sono ufficialmente confuso. Ho scritto questa semplice funzione:

    Codice:
    function birthday()
    {
    	var month = document.getElementById('birthday_month').value;
    	var dayformonth = [31,28,31,30,31,30,31,31,30,31,30,31];
    	var daycap = dayformonth[month];
    	
    	for (d=1; d<=daycap; d++){
    	document.getElementById('birthday_day').options[d] = new Option(d, d);
    	}
    	
    	var daycap=++daycap;
    	
    	for (d=daycap; d<=31; d++){
    	document.getElementById('birthday_day').options[d] = null;
    	}
    }
    Che ha lo scopo di stamparmi il numero corretto di options (giorni) in base al value (mese) scelto in altro Select. Se il nuovo mese ha meno giorni del vecchio, dovrebbe eliminare le opzioni non più utili. Non capisco perché, se seleziono un mese con 28 giorni (ergo, febbraio) mi rimuove il 31, il 29... ma non il 30 Qualcuno sa spiegarmi perché e come correggere? Grazie a tutti della risposta :)

  2. #2
    Guest

    Predefinito

    AGGIORNAMENTO

    Non ho ancora capito perché prima non andasse, ma ho risolto con il processo inverso:

    Codice:
    function birthday()
    {
    	var year = document.getElementById('birthday_year').value;
    	var month = document.getElementById('birthday_month').value;
    
    	if ((year%4) > 0) {
    	var dayformonth = [0,31,28,31,30,31,30,31,31,30,31,30,31];
    	} else {
    	var dayformonth = [0,31,29,31,30,31,30,31,31,30,31,30,31];
    	}
    	var daycap = dayformonth[month];
    
    	for (d=1; d<=daycap; d++){
    	document.getElementById('birthday_day').options[(d+1)] = new Option(d, d);
    	}
    	
    	var daycap=++daycap;
    	
    	for (d=31; d>=daycap; d--){
    	document.getElementById('birthday_day').options[(d+1)] = null;
    	}
    }
    Se qualcuno è così paziente da spiegarmi dove ho sbagliato prima, gliene sono comunque grato

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •