Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: controllo di una data

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    51

    controllo di una data

    ciao raga, vi chiedo aiuto dato che non mastico molto bene JS..

    vi spiego il problema, ho un input type text e al suo interno una data in formato gg/mm/aaaa, tramite JS dovrei dirgli che un utente puo inserire una data ma non maggiore di 7 giorni dalla data odierna e non minore di 7 giorni dalla data odierna.. idee?

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao _Micio_,

    ti faccio un esempio
    codice:
    <HTML>
    <head>
    <script language="javascript">
    function y2k(number) { 
    	return (number < 1000) ? number + 1900 : number; 
    }
    function dataValida(txt){
    	var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
    	if(re.test(txt)){
    		var adata = txt.split('/');
    		var gg = parseInt(adata[0],10);
    		var mm = parseInt(adata[1],10);
    		var aaaa = parseInt(adata[2],10);
    		var xdata = new Date(aaaa,mm-1,gg)
    		if((y2k(xdata.getYear())==aaaa) && (xdata.getMonth()==mm-1) && (xdata.getDate()==gg))
    			return xdata
    		else return false
    	}else return false
    }
    
    function dateDiff(dataa,datab){
    	var diffMilli = dataa.getTime()-datab.getTime()
    	divisore = 86400000
    	return Math.round(diffMilli/divisore)
    }
    
    function verData(tt){
    	var datautente = dataValida(tt.value)
    	if(datautente){
    		var oggi = new Date()
    		oggi = new Date(oggi.getFullYear(),oggi.getMonth(),oggi.getDate())
    		var giorni = dateDiff(datautente,oggi)
    		if(Math.abs(giorni)>7)alert('La data deve essere entro 7 giorni da oggi!')
    	}
    	else alert('Data NON valida!')
    }
    </script>
    </head>
    <BODY>
    <form>
    data in formato gg/mm/aaaa<input type="text" name="data" onchange="verData(this)">
    </form>
    </BODY>
    </HTML>
    se servono chiarimenti chiedi pure

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    51
    ma cosè la prima funzione in alto? cosa fa?
    e invece di assegnare la funzione all on change posso assegnarla a un button con onclick?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    51
    ah ho notato anche che non metti gli end if.. come mai?

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da _Micio_
    ma cosè la prima funzione in alto? cosa fa?
    e invece di assegnare la funzione all on change posso assegnarla a un button con onclick?
    la funzione y2k... hehehe non serve a un kaizer
    serve per trasformare 97 in 1997 ad esempio... però la regular expression della funzione non permette di inserire l'anno di 2 cifre
    quindi puoi eliminarla, però devi modificare la funzione così
    codice:
    function dataValida(txt){
    	var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
    	if(re.test(txt)){
    		var adata = txt.split('/');
    		var gg = parseInt(adata[0],10);
    		var mm = parseInt(adata[1],10);
    		var aaaa = parseInt(adata[2],10);
    		var xdata = new Date(aaaa,mm-1,gg)
    		if((xdata.getYear()==aaaa) && (xdata.getMonth()==mm-1) && (xdata.getDate()==gg))
    			return xdata
    		else return false
    	}else return false
    }

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da _Micio_
    ah ho notato anche che non metti gli end if.. come mai?
    se dopo la if (e/o l'else) hai una sola istruzione non servono le graffe aperte e chiuse... ad esempio
    codice:
    if(condizione)
      alert('vero')
    else
      alert('falso')
    è uguale a
    codice:
    if(condizione){
      alert('vero')
    }
    else{
      alert('falso')
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    51
    codice:
    <INPUT type="button" value="Button" id=button1 name=button1 onclick="dataValida(txt)">
    con qeusto onclick on va.. manco se tolgo txt.. come lo imposto sull onclick?

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    51
    non mi fungemanco con l'onchange sull input

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    51
    no ok sono niubbo io.. era verdata mica quella sopra.. ma non va manco con quello

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    codice:
    <INPUT type="button" value="Button" id=button1 name=button1 onclick="dataValida(this.form.data)">

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.