2012-01-03 14 views
10

ho bisogno di convalidare l'input utilizzando JavaScript e jQuery quando qualcuno inviare il mio modulo newsletterjQuery errore di presentare la validazione dei form

per qualche motivo non funziona. si invia il modulo senza allertare eventuali errori

Ecco quello che ho finora:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
    <script type="text/javascript"> 

    $(document).ready(function(){ 
    function go() { 
     if($('#name').val() == '') { 
      alert('error: name is required'); 
     } 
     $('form').submit(); 
    } 
    }); 


    </script> 
    </head> 

    <form method="post" action=""> 
    Name *<input type="text" name="name" id="name"/> 
    E-Mail *<input type="text" name="email" id="email"/> 

    <input class="submit" type="submit" value="Submit" name="submit" id="submit" onclick="go();"> 
    </form> 

Perché non vedo l'avviso quando non metto niente in nome e poi inviare il modulo?

+0

mi raccomando di usare: [jQuery Validation] (http://docs.jquery.com/Plugins/Validation) –

risposta

15

Invece di utilizzare onclick sul pulsante di invio, utilizzare onsubmit="return go(); sull'elemento del modulo. Oppure, usa jQuery $('form').submit(function(){ ... });

E, una volta che si verifica un errore, è necessario return false dalla funzione per impedirne l'ulteriore esecuzione.

+0

Sebbene tecnicamente corretto, sconsiglio vivamente di usare la validazione lato client e soprattutto di non usare 'alert()' scatole per mostrare errori. –

+1

puoi spiegare cosa intendi? –

+0

@ liho1eye perché vorresti sconsigliarlo? È solo una parte La convalida lato server è necessaria, ma la convalida lato client aiuta a impedire che il modulo venga inviato al server per l'elaborazione se è incompleto. Che consente di risparmiare tempo e richieste http. – dakdad

Problemi correlati