[Javascript] Validare dati in un form prima di spedirlo

doppioconfronto

Nuovo Utente
6 Dic 2018
1
0
1
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>
 
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
 

Discussioni simili