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

    javascript e css

    Vorrei un chiarimento, ho un form annidato dentro a diversi div e con javascript controlle delle select, ma non funziona. Ho messo lo stesso script in una'altra pagina senza div, ma con una sola tabella e tutto funziona perfettamente. Dovrei specificare anche gli id dei div quando da javascript richiamo le select? Il fatto è che non sono molto ferrato in javascript, se vi serve posto il codice.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non dovrebbe far differenza se il form è contenuto in div o meno
    posta il codice

  3. #3
    codice:
      <div id="content"> 
    <div class="feature">
    <form action="{$ricarica}" method="post" name="formhotels" id="formhotels">
    <div class="form1">
    
    
    Seleziona il mese e il giorno dell'inizio della vacanza</p>
    <select name="AM" size="1" id="AM" onChange="FCI();">
    <option value="1" selected>Gen</option>
    <option value="2">Feb</option>
    <option value="3">Mar</option>
    <option value="4">Apr</option>
    <option value="5">Mag</option>
    <option value="6">Giu</option>
    <option value="7">Lug</option>
    <option value="8">Ago</option>
    <option value="9">Set</option>
    <option value="10">Ott</option>
    <option value="11">Nov</option>
    <option value="12">Dic</option>
    </select>
    		
    <select name="AD" size="1" id="AD" onChange="FCI();">
    <option value="1" selected>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">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">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="AY" OnChange="fCI();" size="1" maxlength="4" type="text">
    <OPTION VALUE="2004" selected>2004</option>
    <OPTION VALUE="2005">2005</option>
    <OPTION VALUE="2006">2006</option>
    </SELECT>
    
    
    
    Seleziona il mese e il giorno di fine vacanza</p>
    <select name="PM" size="1" id="PM" onChange="FCO();">
    <option value="1" selected>Gen</option>
    <option value="2">Feb</option>
    <option value="3">Mar</option>
    <option value="4">Apr</option>
    <option value="5">Mag</option>
    <option value="6">Giu</option>
    <option value="7">Lug</option>
    <option value="8">Ago</option>
    <option value="9">Sett</option>
    <option value="10">Ott</option>
    <option value="11">Nov</option>
    <option value="12">Dic</option>
    </select>
    
    <select name="PD" size="1" id="PD" onChange="FCO();">
    <option value="1">1</option>
    <option value="2" selected>2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">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>
    Ovviamente il codice sotto chiude tutti i div.
    E queste sono le funzioni javascript che si trovano nell'head.
    Se metto il form in una tabella le funzioni javascript vanno bene. Il codice non l'ho fatto io, è uno script che ho trovato in rete, quindi non so nemmeno dove mettere mano

    codice:
    <script language="javascript">
    
    function fCI() {
    	if(!(document.formhotels.AM.selectedIndex == 11 && document.formhotels.AD.selectedIndex == 30 && document.formhotels.AY.selectedIndex == document.formhotels.AY.length - 1)) {
    		fCD(document.formhotels.AM.options[document.formhotels.AM.selectedIndex].value,document.formhotels.AD.options[document.formhotels.AD.selectedIndex].value, document.formhotels.AY.options[document.formhotels.AY.selectedIndex].value, "A");
    		if(fDM(document.formhotels.AM.options[document.formhotels.AM.selectedIndex].value,document.formhotels.AD.options[document.formhotels.AD.selectedIndex].value,document.formhotels.AY.options[document.formhotels.AY.selectedIndex].value,document.formhotels.PM.options[document.formhotels.PM.selectedIndex].value,document.formhotels.PD.options[document.formhotels.PD.selectedIndex].value, document.formhotels.PY.options[document.formhotels.PY.selectedIndex].value) != 2)
    			fSCO(document.formhotels.AM.options[document.formhotels.AM.selectedIndex].value,document.formhotels.AD.options[document.formhotels.AD.selectedIndex].value,document.formhotels.AY.options[document.formhotels.AY.selectedIndex].value);
    	}
    	else
    		alert("Invalid Check-In date");
    }
    
    function fCO() {
    	if (!(document.formhotels.PM.selectedIndex == 0 && document.formhotels.PD.selectedIndex == 0 && document.formhotels.PY.selectedIndex == 0)){
    		fCD(document.formhotels.PM.options[document.formhotels.PM.selectedIndex].value,document.formhotels.PD.options[document.formhotels.PD.selectedIndex].value,document.formhotels.PY.options[document.formhotels.PY.selectedIndex].value,"P");
    		if (fDM(document.formhotels.PM.options[document.formhotels.PM.selectedIndex].value, document.formhotels.PD.options[document.formhotels.PD.selectedIndex].value, document.formhotels.PY.options[document.formhotels.PY.selectedIndex].value, document.formhotels.AM.options[document.formhotels.AM.selectedIndex].value, document.formhotels.AD.options[document.formhotels.AD.selectedIndex].value, document.formhotels.AY.options[document.formhotels.AY.selectedIndex].value) != 1)
    			alert("Warning: Wrong dates order!");
    	}
    	else
    		alert("Invalid Check-Out date");
    }
    
    function fCD(Mese, Giorno, Anno, S) {
    	Mese = parseInt(Mese);
    	Giorno = parseInt(Giorno);
    	Anno = parseInt(Anno);
    	if (Giorno > 28)
    		if (Mese == 2) {
    			if (!(Giorno == 29 && Anno % 4 == 0))
    				fUGM(Mese, Anno, S);
    		}
    		else if(Giorno == 31 && (Mese == 4 || Mese == 6 || Mese == 9 || Mese == 11))
    			fUGM(Mese, Anno, S);
    }
    	
    function fSCO(Mese, Giorno, Anno) {
    	Mese = parseInt(Mese);
    	Giorno = parseInt(Giorno);
    	Anno = parseInt(Anno);
    	if (Giorno <= 27)
    		fGS();
    	else if (Mese == 2)
    		if (Giorno == 28 && Anno % 4 == 0)
    			fGS();
    		else
    			fPMS(Mese);
    	else if (Giorno == 31)
    		fPMS(Mese);
    	else if (Giorno == 30 && (Mese == 4 || Mese == 6 || Mese == 9 || Mese == 11))
    		fPMS(Mese);
    	else fGS();
    }
    
    //funzione che imposta in automatico il giorno successivo  a quello selezionato
    function fGS() {
    	document.formhotels.PM.selectedIndex = document.formhotels.AM.selectedIndex;
    	document.formhotels.PD.selectedIndex = document.formhotels.AD.selectedIndex + 1;
    	document.formhotels.PY.selectedIndex = document.formhotels.AY.selectedIndex;
    }
    
    //funzione che controlla la fine dell'anno
    function fPMS(Mese) {
    	Mese = parseInt(Mese);
    	if (Mese == 12) {
    		document.formhotels.PM.selectedIndex = 0;
    		document.formhotels.PD.selectedIndex = 0;
    		if (document.formhotels.AY.selectedIndex + 1 < document.formhotels.AY.length)
    			document.formhotels.PY.selectedIndex = document.formhotels.AY.selectedIndex + 1;
    		}
    		else {
    			document.formhotels.PM.selectedIndex = document.formhotels.AM.selectedIndex + 1;
    			document.formhotels.PD.selectedIndex = 0;
    			document.formhotels.PY.selectedIndex = document.formhotels.AY.selectedIndex;
    		}
    }
    
    
    function fDM(Mese1, Giorno1, Anno1, Mese2, Giorno2, Anno2) {
    	Mese1 = parseInt(Mese1);
    	Giorno1 = parseInt(Giorno1);
    	Anno1 = parseInt(Anno1);
    	Mese2 = parseInt(Mese2);
    	Giorno2 = parseInt(Giorno2);
    	Anno2 = parseInt(Anno2);
    	if (Anno1 == Anno2)
    		if (Mese1 == Mese2)
    			if (Giorno1 == Giorno2)
    				return 0;
    			else if (Giorno1 < Giorno2)
    				return 2;
    			else
    				return 1;
    		else if (Mese1 < Mese2)
    			 return 2;
    		else
    			return 1;
    	else if (Anno1 < Anno2)
    		return 2;
    	else
    		return 1;
    }
    
    //funzione che controlla il numero del giorno inbase al mese selezionato
    function fUGM(Mese, Anno, S) {
    	switch(parseInt(Mese)) {
    		case 1: case 3: case 5: case 7: case 8: case 10: case 12:
    			document.formhotels.elements[S + "D"].selectedIndex = 30;
    			break;
    		case 4: case 6: case 9: case 11:
    			document.formhotels.elements[S + "D"].selectedIndex = 29;
    			break;
    		case 2:
    			if (Anno % 4 == 0) document.formhotels.elements[S + "D"].selectedIndex = 28;
    			else document.formhotels.elements[S + "D"].selectedIndex = 27;
    			break;
    	}
    }
    </script>

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    a prima vista sono errati tutti i richiami alle funzioni

    <select name="AM" size="1" id="AM" onChange="FCI();">

    FCI() non esiste, esiste fCI()

    hai dimenticato di copiare l' anno di partenza
    ma aggiungendolo mi sembra funzioni tutto correttamente sia racchiuso tra div che fuori, come previsto

    ciao

  5. #5
    :metallica grazie mille ora funziona

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.