Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786

    giorni in base al mese + controllo

    Salve,

    Ho fatto un form html dal quale è possibile selezionare:

    arrivo: giorno - mese - anno
    partenza: giorno - mese - anno

    ora vorrei che tramite js sia + preciso.

    Ecco cosa c'è da fare:

    • visualizza i giorni reali del mese.
      es. gennaio ha 31 giorni mantre aprile ne a 30
    • se io come prima data seleziono il mese di agosto lui mi sposta in automatico la seconda data sul mese di agosto.
    • controlla se la seconda data è dopo la prima.


    Insomma, girando in rete ho trovato questo sito che fa una cosa molto simile a quello che voglio fare io, pultroppo non sono riuscito a modificare lo scritp in base alle mie esigenze.

    Per favore mi aiutate a fare quanto ho detto su ?

    grazie 1000 !

    p.s. questo è il mio form:
    codice:
    <form id="periodo">
    	
    	<select name="giorno_arrivo">
    		<option value="01">1</option>
    		<option value="02">2</option>
    		<option value="03">3</option>
            	<option value="04">4</option>
            	<option value="05">5</option>
            	<option value="06">6</option>
            	<option value="07">7</option>
    		<option value="08">8</option>
            	<option value="09">9</option>
    		<option value="10">10</option>
            	<option value="11">11</option>
            	<option value="12">12</option>
            	<option value="13">13</option>
            	<option value="14">14</option>
            	<option value="15">15</option>
            	<option value="16">16</option>
            	<option value="17">17</option>
            	<option value="18">18</option>
            	<option value="19">19</option>
            	<option value="20">20</option>
            	<option value="21">21</option>
            	<option value="22">22</option>
            	<option value="23">23</option>
            	<option value="24">24</option>
    		<option value="25">25</option>
            	<option value="26">26</option>
    		<option value="27">27</option>
    		<option value="28">28</option>
    		<option value="29">29</option>
    		<option value="30">30</option>
    		<option value="31">31</option>
    	</select>
    	<select name="mese_arrivo">
    		<option value="Gennaio">Gennaio</option>
    		<option value="Fabbraio">Fabbraio</option>
    		<option value="Marzo">Marzo</option>
    		<option value="Aprile">Aprile</option>
    		<option value="Maggio">Maggio</option>
    		<option value="Giugno">Giugno</option>
    		<option value="Luglio">Luglio</option>
    		<option value="Agosto">Agosto</option>
    		<option value="Settembre">Settembre</option>
    		<option value="Ottobre">Ottobre</option>
    		<option value="Novembre">Novembre</option>
    		<option value="Dicembre">Dicembre</option>
    	</select>
    	<select name="anno_arrivo">
    		<option value="2005">2005</option>
    		<option value="2006">2006</option>
    	</select>
    		
    	
    
    
    		
    	<select name="giorno_partenza">
    		<option value="01">1</option>
    		<option value="02">2</option>
    		<option value="03">3</option>
            	<option value="04">4</option>
            	<option value="05">5</option>
            	<option value="06">6</option>
            	<option value="07">7</option>
    		<option value="08">8</option>
            	<option value="09">9</option>
    		<option value="10">10</option>
            	<option value="11">11</option>
            	<option value="12">12</option>
            	<option value="13">13</option>
            	<option value="14">14</option>
            	<option value="15">15</option>
            	<option value="16">16</option>
            	<option value="17">17</option>
            	<option value="18">18</option>
            	<option value="19">19</option>
            	<option value="20">20</option>
            	<option value="21">21</option>
            	<option value="22">22</option>
            	<option value="23">23</option>
            	<option value="24">24</option>
    		<option value="25">25</option>
            	<option value="26">26</option>
    		<option value="27">27</option>
    		<option value="28">28</option>
    		<option value="29">29</option>
    		<option value="30">30</option>
    		<option value="31">31</option>
    	</select>
    	<select name="mese_partenza">
    		<option value="Gennaio">Gennaio</option>
    		<option value="Fabbraio">Fabbraio</option>
    		<option value="Marzo">Marzo</option>
    		<option value="Aprile">Aprile</option>
    		<option value="Maggio">Maggio</option>
    		<option value="Giugno">Giugno</option>
    		<option value="Luglio">Luglio</option>
    		<option value="Agosto">Agosto</option>
    		<option value="Settembre">Settembre</option>
    		<option value="Ottobre">Ottobre</option>
    		<option value="Novembre">Novembre</option>
    		<option value="Dicembre">Dicembre</option>
    	</select>
    	<select name="anno_partenza">
    		<option value="2005">2005</option>
    		<option value="2006">2006</option>
    	</select>
    		
    </form>
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    Inoltre se è possibile vorrei che visualizza il giorno in anche in formato testo (Sabato, Domenica ...)

    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    ho quasi risolto il problema da solo

    ma ho ancora un piccolo dilemma:

    posso i nomi dai select allo scritp così:

    codice:
    DoDays('select_giorno','select_mese');
    questo è lo scritp:

    codice:
    function DoDays(objGiorni,objMese) 
    {
    	var a,i;
    	var aData;
    	var obj=eval("document.f."+objMese);
    	var sz;
     	iMese = obj.selectedIndex+5-1;
    	obj=eval("document.f."+objGiorni);
    	var iDayOriginal=eval(obj.options[obj.selectedIndex].value);
    	
    	// Annullo oggetto
     	for (i=obj.options.length-1; i>=0;i--) {obj.options[i]=null;}
    
    	for (a=0,i=1;i<32;i++)
    	{	
       	var aData = new Date(iAnno,iMese,i);
    		if (aData.getMonth()!=iMese) continue; 
    		if (arDCheck[aData.getDay()]<'!') continue; 
    		obj.options[a]=new Option (i);
    		if (i<10) sz="0"+i; else sz=i;
    		obj.options[a].value=new String(sz);
    		a++;
     	}
    
     	obj.selectedIndex = idxFind(objGiorni,iDayOriginal);
    }
    
    function idxFind(objGiorni,day)
    {
    	var obj=eval("document.f."+objGiorni);
    	var i;
     	for (i=0;i<obj.options.length;i++) 
    	{
    		if (eval(obj.options[i].value)==day) return i;
    	}
    	return 0;
    }
    ma la Web Developer di firefox

    mi segnala questo allert:

    Avviso: 09 is not a legal ECMA-262 octal constant
    su questa riga:

    codice:
    if (eval(obj.options[i].value)==day) return i;
    come mai ?

    a cosa è dovuto ?

    grazie !

    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    In javascript trasformando in numero una stringa il cui primo carattere sia la cifra zero viene considerato espresso in base ottale.

    cambia:

    if (parseInt(obj.options[i].value,10)==day) return i;

    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    grazie mille !

    ciao
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

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.