[Javascript] Validare dati in un form prima di spedirlo

Discussione in 'Javascript' iniziata da doppioconfronto, 6 Dicembre 2018.

  1. doppioconfronto

    doppioconfronto Nuovo Utente

    Registrato:
    6 Dicembre 2018
    Messaggi:
    1
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao a tutti, non riesco a far funzionare correttamente il codice che posto sotto. Vorrei che nei campi del form nome e cognome siano presenti solo lettere, se l'utente inserisce numeri o caratteri speciali, deve generale un errore, invece al momento anche se inserisco caratteri non consentiti, il form invia ugualmente alla pagina php. Dove sbaglio?

    HTML:
    <head>
    <meta charset="UTF-8">
    <title>Prova</title>
    <script>
    function controllaForm() {
       var soloTesto = /^([a-zA-Z '])+$/;
      
       if (!soloTesto.test(document.form[0].nome.value)) {
          alert("Il nome inserito non e' valido!");
          document.form[0].nome.focus();
          return false;
       }
       if (!soloTesto.test(document.form[0].cognome.value)) {
          alert("Il cognome inserito non e' valido!");
          document.form[0].cognome.focus();
          return false;
            </script>
    </head>
    <body>
    
    <form  onsubmit=“return controllaForm()” action="http://localhost/sito1/new1.php" method="post" name="form">
        Nome:<br>
        <input type="text" name="nome" /> <br>
        Cognome:<br>
        <input type="text" name="cognome"/> <br>
        Data di nascita <br>
        <input type="date" name="data" /> <br> <br>
        <input type="submit" value="Invia"  onClick ="controllaForm()" >
    <input type="reset" value="cancella">
        </form>
    
    
    </body>
    
     
  2. Rikk73

    Rikk73 Utente Attivo

    Registrato:
    7 Aprile 2015
    Messaggi:
    133
    Mi Piace Ricevuti:
    6
    Punteggio:
    18
    Sesso:
    Maschio
    Occupazione:
    .NET Software Developer
    Località:
    Arezzo
    secondo me fai meglio e prima ad utilizzare i pattern direttamente in html, ad esempio

    HTML:
    <input type="text" name="username" required pattern="[a-zA-Z]{4,10}" title="Solo lettere, min 4 max 10 caratteri" />
    
    dove il pattern indica che sono accettate solo lettere maiuscole e minuscole, minimo 4 massimo 10 caratteri, e title il messaggio mostrato in caso di errore
     
Sto caricando...

Condividi questa Pagina