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

    Verifica immissioni dati form

    Ciao a tutti! Devo realizzare un form in cui l'utente inserisce data e ora, lo fa semplicemente scrivendo a mano. Come posso realizzare un controllo affinchè i campi siano gg/mm/aa, hh/mm validi?
    Quindi non del tipo 78/888/ciao e 88:30.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Java, JSP, altro?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    10
    Quote Originariamente inviata da Darèios89 Visualizza il messaggio
    Ciao a tutti! Devo realizzare un form in cui l'utente inserisce data e ora, lo fa semplicemente scrivendo a mano. Come posso realizzare un controllo affinchè i campi siano gg/mm/aa, hh/mm validi?
    Quindi non del tipo 78/888/ciao e 88:30.
    Ciao, siccome parla di form ipotizzo sia jsp, dunque ti consiglio di fare una cosa del genere! è molto meglio e almeno puoi gestire anche i campi del form uno a uno

    codice:
    <html>
    <head>
    <link rel = "stylesheet" type = "text/css" href = "stileProveForm.css">
    <meta charset="UTF-8">
    <title>Prova Form</title>
    <script>
    function verificaModulo(moduloForm) {
        if ((moduloForm.name.value == "") || 
                    (moduloForm.email.value == "")) {
            alert("Nome o email mancanti, modulo non inviato!");
            return false;
        }
        
        if (moduloForm.gg.value > 31 || moduloForm.gg.value < 0) {
            alert("Giorno di nascita non corretto, modulo non inviato!");
            return false;
        }
        
        if (moduloForm.mm.value > 12 || moduloForm.mm.value < 0) {
            alert("Mese di nascita non corretto, modulo non inviato!");
            return false;
        }
        
        if (moduloForm.aaaa.value < 1850) {
            alert("Anno di nascita non corretto, modulo non inviato!");
            return false;
        }
        
        alert("Modulo Inviato correttamente");
        return true;
    
    
    }
    </script>
    </head>
    <body>
    <form action = "richiesta.jsp" onsubmit = "return verificaModulo(this)" method = "POST" name = "Dati Utente">
    <h3>USER'S INFORMATION</h3>
    Name:
    <input type = "text" name = "nome" size = "30">
    <br>
    Email:   
    <input type = "text" name = "email" size = "30">
    <br>
    Date of Birth:
    <input type = "text" name = "gg" size = "3"> /
    <input type = "text" name = "mm" size = "3"> /
    <input type = "text" name = "aaaa" size = "6"> 
    <br>
    <input type = "submit" value = "send">
    </form>
    </body>
    </html>
    Ultima modifica di zipale99; 07-02-2014 a 22:39

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ecco, una soluzione client-side in javascript non è proprio quello che avrei adottato io, per un sacco di ragioni. La prima è che, anche se non succede più, qualcuno potrebbe avere javascript disabilitato/limitato (scelte aziendali, dispositivo non compatibile al 100% o che). La seconda è che una soluzione client-side è comunque aggirabile (decido io che cosa mandare). La terza, ma questa è relativa all'implementazione specifica, lì è consentito ad occhio, un 30 febbraio.

    La validazione client-side va certamente fatta a monte, ma dev'essere "back-uppata" da una seconda validazione server-side. Piuttosto manchi la parte client-side che quella server-side (tra l'altro, se il form è complesso e prevede altre immissioni, potresti adottare AJAX per richiamare una validazione server-side durante la compilazione dei campi data e ora: in questo modo sfrutti il lavoro -anche se ridondante- che devi comunque fare server-side e l'utente riceve in real-time i messaggi relativi a compilazioni non consistenti, ma non vorrei mettere troppa carne sul fuoco)

    In sostanza implementerei un parsing basato su SimpleDateFormat, con un setLenient(false) (in modo da evitare interpretazioni euristiche di date non valide - vedi 30-31 Febbraio) per il server-side.


    PS: altro piccolo accorgimento che potresti adottare: doti il tuo form di un controllino tipo DatePicker di jQuery (e siamo ancora nel reame client-side) e rendi i campi relativi a data e ora non direttamente editabili. L'utente non smaliziato (o per meglio dire, l'utente non malintenzionato), non andrà a giochicchiare con quei campi. La validazione server-side va comunque effettuata.
    Ultima modifica di Andrea1979; 08-02-2014 a 12:13
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Quote Originariamente inviata da Andrea1979 Visualizza il messaggio
    Ecco, una soluzione client-side in javascript non è proprio quello che avrei adottato io, per un sacco di ragioni. La prima è che, anche se non succede più, qualcuno potrebbe avere javascript disabilitato/limitato (scelte aziendali, dispositivo non compatibile al 100% o che). La seconda è che una soluzione client-side è comunque aggirabile (decido io che cosa mandare). La terza, ma questa è relativa all'implementazione specifica, lì è consentito ad occhio, un 30 febbraio.

    La validazione client-side va certamente fatta a monte, ma dev'essere "back-uppata" da una seconda validazione server-side. Piuttosto manchi la parte client-side che quella server-side (tra l'altro, se il form è complesso e prevede altre immissioni, potresti adottare AJAX per richiamare una validazione server-side durante la compilazione dei campi data e ora: in questo modo sfrutti il lavoro -anche se ridondante- che devi comunque fare server-side e l'utente riceve in real-time i messaggi relativi a compilazioni non consistenti, ma non vorrei mettere troppa carne sul fuoco)

    In sostanza implementerei un parsing basato su SimpleDateFormat, con un setLenient(false) (in modo da evitare interpretazioni euristiche di date non valide - vedi 30-31 Febbraio) per il server-side.


    PS: altro piccolo accorgimento che potresti adottare: doti il tuo form di un controllino tipo DatePicker di jQuery (e siamo ancora nel reame client-side) e rendi i campi relativi a data e ora non direttamente editabili. L'utente non smaliziato (o per meglio dire, l'utente non malintenzionato), non andrà a giochicchiare con quei campi. La validazione server-side va comunque effettuata.
    Interessante...grazie a tutti, faccio qualche tentativo!

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.