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

    Obbligare inserimento data in un determinato formato

    Salve,
    ho un form denominato form2 con un campo data e questo campo è già obbligatorio.

    <input name="datainizio" type="text" id="datepicker" value="" size="10">

    mi servirebbe però che l'utente fosse obbligato ad inserire la data nel formato yyyy-mm-dd
    come posso fare?
    grazie

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Controlla a posteriori e, se non corretto... bacchettata!

    Senz'altro piu' facile a farsi che non un controllo durante la digitazione...
    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

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Concordo con br1...

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function checkDate (sToBeParsed) {
    	// yyyy-mm-dd
    	var aDate = sToBeParsed.split("-");
    
    	for (var nIdx = 0; nIdx < aDate.length; aDate[nIdx] = parseFloat(aDate[nIdx++]));
    
    	var
    		oParsedDate = new Date(aDate[0], aDate[1] - 1, aDate[2]),
    		bIsValid = /^\d{4}\-\d{2}\-\d{2}$/.test(sToBeParsed) && !isNaN(oParsedDate.getTime()) && aDate[0] === oParsedDate.getFullYear() && aDate[1] === oParsedDate.getMonth() + 1 && aDate[2] === oParsedDate.getDate();
    
    	if (!bIsValid) { alert("Inserire una data in formato \"aaaa-mm-gg\"."); }
    
    	return bIsValid;
    
    }
    </script>
    </head>
    
    <body>
    
    <form name="tuoForm" onsubmit="return checkDate(this.nascita.value);">
    
    
    
    Inserisci la tua data di nascita: <input type="text" name="nascita" /></p>
    
    
    
    <input type="submit" value="Invia" />
    
    </form>
    
    </body>
    
    </html>
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  4. #4
    Perfetto grazie!
    Ho solo due piccole aggiunte da richiedere e non capisco come integrarle:
    - la data deve essere diversa da 0000-00-00
    - avrei due campi data (datainizio e datafine). Ho messo lo script e nel form ho fatto: onsubmit="return checkDate(this.datainizio.value);return checkDate(this.datafine.value)"
    ma il secondo check non me lo prende

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da nikitoz78bs
    - la data deve essere diversa da 0000-00-00
    0000-00-00 dà errore infatti, perché non è una data valida&hellip;


    Originariamente inviato da nikitoz78bs
    - avrei due campi data (datainizio e datafine). Ho messo lo script e nel form ho fatto: onsubmit="return checkDate(this.datainizio.value);return checkDate(this.datafine.value)"
    Fa' così:

    codice:
    onsubmit="return checkDate(this.datainizio.value) && checkDate(this.datafine.value);"
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  6. #6
    Funziona perfettamente! Grazie!

  7. #7
    html5 solution:

    <input type="date" id="date" name="date" pattern="(?:19|20)[0-9]{2}-(??:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(??!02)(?:0[1-9]|1[0-2])-(?:30))|(??:0[13578]|1[02])-31))" required />



    *faccine tristi incluse...
    Questa volta, più che un voto.. è favoreggiamento.

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.