Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    3

    controllo scadenza (Javascript)

    Devo controllare che la data di scadenza sia maggiore della data odierna e visualizzare un messaggio di errore se la scadenza è minore della data, poi ho il problema dell'anno bisestile, qlcuno sa come aiutarmi nn so proprio come fare???

    Data: 5/09/05 --> è un input
    Scadenza: es 16 Giugno 2006 --> è una select

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Benvenuto nel forum!!
    Se non lo hai ancora fatto, leggi il regolamento: ti evita di ricevere risposte inutili, come la presente.

    Per il confronto tra due date, un metodo semplice e` scriverle in formato numerico, affiancare le strnghe di anno,mese,giorno (nell'ordine) e fare un confronto alfabetico.

    Oppure si possono usare i metodi di Date().

    Trovi vari esempi nel forum, per cui ti invito a guardare tra le "discussion utili" (in testa al forum) oppure a fare una ricerca nel forum (bottone in alto a dx).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    La domanda non e' molto chiara... per esempio non si capisce quali e quante date devi controllare/verificare/confrontare :master:

    Per prima cosa devi stabilire il formato di introduzione delle date... immaginiamo che sia gg/mm/aa ;

    Poi occorre sapere il formato della proprieta' value delle option nella select... anche qui immaginiamo gg/mm/aa;

    Quindi occorre verificare il formato del dato introdotto e trasformarlo in un oggetto data;

    Infine fare il confronto... ma questa e' la parte piu' semplice:

    codice:
    <script>
    function isDate(str) { 
    	if (str.indexOf("/")==str.lastIndexOf("/")) 
    		return false;
    	spz = str.split("/"); 
    	dat = new Date("20"+spz[2], spz[1]-1, spz[0]); 
    	if	( 
    		dat.getFullYear() == 2000+parseFloat(spz[2]) &&
    		dat.getMonth() == (parseFloat(spz[1])-1) &&
    		dat.getDate() == parseFloat(spz[0]) 
    		) {
    			return dat;
    	}
    	return false;
    } 
    function controlla(obj) {
    	var msg = "";
    	var wdata = isDate(obj.data.value);
    	alert(wdata)
    	if (!wdata) 
    		msg += "Controlla la data\n";
    	var wscad = isDate(obj.scadenza.options[obj.scadenza.selectedIndex].value);
    	var oggi = new Date();
    	if (wscad<oggi)
    		msg += "La data di scadenza e' gia' passata...\n";
    	if (wscad<wdata)
    		msg += "La data di scadenza e' minore della data\n";
    	if (msg) {
    		alert(msg);
    		return false;
    	}
    	return true;
    }
    </script>
    <body>
    <form action="http://localhost/test.asp" onsubmit="return controlla(this)">
    Data: <input type="text" name="data">
    
    <select name="scadenza">
    	<option value="01/01/05">01 gennaio 2005</option>
    	<option value="01/07/05">01 luglio 2005</option>
    	<option value="01/01/06">01 gennaio 2006</option>
    	<option value="01/07/06">01 luglio 2006</option>
    </select>
    
    <input type="submit">
    </form>
    </body>
    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

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    3
    Ho 2 campi da controllare la data e la scadenza. La data è qlla odierna ed è in formato g/m/anno e sarà un input, mentre la scadenza è una select nel quale l'utente inserirà giorno, mese e anno.


    codice:
    
     <tr>
        <td><span class="Stile3 Stile1 Stile5">Data:</span></td>
        <td colspan="2"><input type="text"  style="width:100px;" name="newdata" readonly value="<?echo date ("d/m/y");?>" size="12"></td>
      </tr>
    codice:
     
    
    
      <tr>
        <td><span class="Stile3 Stile1 Stile5">Scadenza:</span></td>
        
    <?
    
    echo"<td>";
    	echo"<select name=\"giorno\">";
    			for ($giorno = 1; $giorno <=31; $giorno++)
    			{	
    				$risultato=$giorno;
     	 			echo"<option value=\"$giorno\">$risultato";
    	 		}
    	echo"</select>";
    	
    
    echo"<select name=\"mese\">";
    			echo"<option value=\"1\">Gennaio
    			<option value=\"2\">Febbraio
    	 		<option value=\"3\">Marzo
    			<option value=\"4\">Aprile
    			<option value=\"5\">Maggio
    			<option value=\"6\">Giugno
    			<option value=\"7\">Luglio
    			<option value=\"8\">Agosto
    			<option value=\"9\">Settembre
    			<option value=\"10\">Ottobre
    			<option value=\"11\">Novembre
    			<option value=\"12\">Dicembre";
    	echo"</select>";
    
    	
    	echo"<select name=\"anno\">";
    			for ($anno = 2005; $anno<=2010; $anno++)
    			{	
    				$risultato=$anno;
     	 			echo"<option value=\"$anno\">$risultato";
    	 		}
    	echo"</select>";
    	
    echo"</td>";	 
    ?>
     	 
    	</tr>


    Mi sto incasinando...help

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 © 2026 vBulletin Solutions, Inc. All rights reserved.