Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Controllo date

  1. #1
    Utente di HTML.it L'avatar di Beziel
    Registrato dal
    Oct 2002
    Messaggi
    697

    Controllo date

    Salve a tutti,
    avendo questo script:

    </script>
    <script language="JavaScript">
    <!--


    function controllo() {

    campo1=document.form1.datainvio1.value;
    campo2=document.form1.datainvio2.value;
    campo3=document.form1.dataa.value;
    campo4=document.form1.datap.value;

    if(((campo1=="")&&(campo2!=""))||((campo1!="")&&(c ampo2=="")))
    {
    alert("Compilare entrambi i campi")
    }
    if(((campo3=="")&&(campo4!=""))||((campo3!="")&&(c ampo4=="")))
    {
    alert("Compilare entrambi i campi")
    }
    if(((campo1=="")&&(campo2==""))||((campo1!="")&&(c ampo2!="")))
    if(((campo3=="")&&(campo4==""))||((campo3!="")&&(c ampo4!="")))
    {
    document.form1.submit();window.close()
    }
    }
    //-->
    </script>

    Come faccio ad inserire anche un controllo in modo che le date vengano inserite nel formato gg/mm/aaaa???

    grazie 1000

  2. #2
    Utente di HTML.it L'avatar di Sgnafurz
    Registrato dal
    Mar 2003
    Messaggi
    2,182

    Re: Controllo date

    Originariamente inviato da Beziel
    Salve a tutti,
    avendo questo script:

    </script>
    <script language="JavaScript">
    <!--


    function controllo() {

    campo1=document.form1.datainvio1.value;
    campo2=document.form1.datainvio2.value;
    campo3=document.form1.dataa.value;
    campo4=document.form1.datap.value;

    if(((campo1=="")&&(campo2!=""))||((campo1!="")&&(c ampo2=="")))
    {
    alert("Compilare entrambi i campi")
    }
    if(((campo3=="")&&(campo4!=""))||((campo3!="")&&(c ampo4=="")))
    {
    alert("Compilare entrambi i campi")
    }
    if(((campo1=="")&&(campo2==""))||((campo1!="")&&(c ampo2!="")))
    if(((campo3=="")&&(campo4==""))||((campo3!="")&&(c ampo4!="")))
    {
    document.form1.submit();window.close()
    }
    }
    //-->
    </script>

    Come faccio ad inserire anche un controllo in modo che le date vengano inserite nel formato gg/mm/aaaa???

    grazie 1000
    devi fare un parsing della stringa
    ne abbiamo uno qui noi
    http://www.iguane.it/myscript/

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Salve a tutti,

    di controlli sulle date ce ne sarà una svalangata in questo forum :gren:

    il tuo script Beziel controlla che ci siano o tutte le date o le prime due o le seconde due o nessuna... insomma le date sono accoppiate o ci sono tutte e due o neanche una (per questo basta una sola if)
    codice:
    function controllaData(strData){
    	re=/\d{1,2}\/\d{1,2}\/\d{4}/
    	if(re.test(strData)){
    		aData = strData.split('/')
    		aData[0]=parseInt(aData[0])
    		aData[1]=parseInt(aData[1])
    		aData[2]=parseInt(aData[2])
    		data = new Date(aData[2],aData[1]-1,aData[0])
    		return (data.getDate()==aData[0] && data.getMonth()==(aData[1]-1) && data.getFullYear()==aData[2])
    	}
    	else return false
    }
    
    function controllo() { 
    	campo1=document.form1.datainvio1.value; 
    	campo2=document.form1.datainvio2.value; 
    	campo3=document.form1.dataa.value; 
    	campo4=document.form1.datap.value; 
    	
    	if((campo1==''&&campo2!='')||(campo1!=''&&campo2=='')||(campo3==''&&campo4!='')||(campo3!=''&&campo4==''))
    		alert('Compilare entrambi i campi')
    	else{
    		msg=''
    		if(!(campo1==''||controllaData(campo1)))msg+='datainvio1\n'
    		if(!(campo2==''||controllaData(campo2)))msg+='datainvio2\n'
    		if(!(campo3==''||controllaData(campo3)))msg+='dataa\n'
    		if(!(campo4==''||controllaData(campo4)))msg+='datap\n'
    		if(msg!='')alert('Data errata in:\n'+msg)
    		else{
    			document.form1.submit()
    			window.close()
    		}
    	}
    }

  4. #4
    Utente di HTML.it L'avatar di Beziel
    Registrato dal
    Oct 2002
    Messaggi
    697
    Nel form cmq ci sono altri campi data che non devono essere accoppiati quindi avevo intenzione di inserire questo pezzo in modo da fare il controllo sui campi che voglio:

    RE = new RegExp("^[\\d]{2}\\/[\\d]{2}\/[\\d]{4}$", "gi")
    if ((RE.test(document.form1.datainvio1.value) == false)||(document.form1.datainvio1.length < 1)) {
    {alert('Data Errata - inserire la data nel formato gg/mm/aaaa');return false; }
    }

    solo che così non accetta + il campo vuoto come posso fare???

  5. #5
    Utente di HTML.it L'avatar di Beziel
    Registrato dal
    Oct 2002
    Messaggi
    697
    x willybit:

    scusa ma se ho un altro campo data su cui devo fare solamente il controllo del formato come lo aggiungo al tuo script??


    grazie

  6. #6
    Utente di HTML.it L'avatar di Beziel
    Registrato dal
    Oct 2002
    Messaggi
    697
    Scusa ho risolto era banale la cosa:quote:

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da Beziel
    x willybit:

    scusa ma se ho un altro campo data su cui devo fare solamente il controllo del formato come lo aggiungo al tuo script??

    grazie
    Ciao Beziel,

    la tua RegularExpression controlla il formato gg/mm/aaaa (giorni e mesi minori di 10 devono avere lo zero 01, 02, 03,...)
    la mia funzione controllaData controlla sia il formato sia la validità della data (tipo 31/2/2003 non è valida ma il formato è giusto). E adesso che vedo ce stanno pure dei bug :gren:... correggo
    codice:
    function controllaData(strData){
    	re=/^\d{1,2}\/\d{1,2}\/\d{4}$/
    	if(re.test(strData)){
    		aData = strData.split('/')
    		aData[0]=parseInt(aData[0],10)
    		aData[1]=parseInt(aData[1],10)
    		aData[2]=parseInt(aData[2],10)
    		data = new Date(aData[2],aData[1]-1,aData[0])
    		return (data.getDate()==aData[0] && data.getMonth()==(aData[1]-1) && data.getFullYear()==aData[2])
    	}
    	else return false
    }
    Nella RE mi ero dimenticato l'inizio ^ e la fine $
    e nella trasformazione in intero con parseInt avevo omesso la base 10 (numeri che cominciano con 0 li considererebbe ottali).

    per controllare che una data sia inserita giusta o non sia inserito niente
    codice:
    if(!(campo1==''||controllaData(campo1))){
      alert('La data inserita non è valida')
    }

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.