2013-04-28 15 views
34

Sto volendo eseguire la convalida utente javascript su alcune voci di testo.Azione modulo HTML e problemi di invio immediato

Il problema che sto avendo è che il mio modulo ha l'azione di andare a una nuova pagina all'interno del nostro sito, e l'attributo onsubmit non esegue mai la funzione javascript.

Esiste una soluzione migliore o una che funziona con il seguente codice: NOTA: il file javascript è scritto correttamente e funziona se si passa l'azione a checkRegistration().

È semplicemente un problema con l'esecuzione di azione e javascript.

<form name="registerForm" action="validate.html" onsubmit="checkRegistration()" method="post"> 
    <!-- textboxes here --> 
    <!-- and submit button --> 
</form> 
+0

Puoi condividere 'checkRegistration 'pure –

+0

Funziona, controlla solo se il nome utente è stato email e così via. Non è una questione di errori in javascript. –

risposta

43

si dovrebbe smettere presentare procedura restituendo falso in onsubmit richiamata.

<script> 
function checkRegistration(){ 
    if(!form_valid){ 
     alert('Given data is not correct'); 
     return false; 
    } 
    return true; 
} 
</script> 
<form onsubmit="return checkRegistration()"... 

UPDATE:

qui avete pienamente esempio di lavoro, sotto forma presenterà solo quando si scrive google in ingresso, in caso contrario verrà restituito l'errore:

<script> 
function checkRegistration(){ 
    var form_valid = (document.getElementById('some_input').value == 'google'); 
    if(!form_valid){ 
     alert('Given data is incorrect'); 
     return false; 
    } 
    return true; 
} 
</script> 
<form onsubmit="return checkRegistration()" method="get" action="http://google.com"> 
    Write google to go to google..<br/> 
    <input type="text" id="some_input" value=""/> 
    <input type="submit" value="google it"/> 
</form> 
+0

quindi nel mio file js avrò se nessun errore -> restituisce true, altrimenti false che non verranno inoltrate e reindirizzate alla pagina html di validazione? Corretta? –

+1

Beh, non esattamente. Se si restituisce il modulo true verrà inviato e il browser farà richiesta. Se restituisci un falso browser si fermerà e tutto è nelle tue mani come gestirlo. Il modo più semplice è di avvisare il problema della validazione, come nell'esempio. – s3m3n

+0

Sta funzionando, ma sto ottenendo una risposta 304, invece di 200. Come sarebbe questo? –

6

Prova

onsubmit="return checkRegistration()" 
Problemi correlati