web-dev-qa-db-fra.com

Action de formulaire HTML et problèmes d'envoi

Je souhaite exécuter la validation utilisateur javascript sur certaines entrées de la zone de texte.

Le problème que j'ai, c'est que mon formulaire a pour effet de passer à une nouvelle page de notre site et que l'attribut onsubmit n'exécute jamais la fonction javascript.

Existe-t-il une meilleure solution, ou une solution fonctionnant avec le code suivant: REMARQUE: le fichier javascript est écrit correctement et fonctionne si vous passez de l'action à checkRegistration().

C'est simplement un problème avec l'exécution de l'action et du javascript.

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

Vous devez arrêter la procédure d'envoi en renvoyant la valeur false sur onsubmit callback.

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

UPDATE:

vous avez ici un exemple parfaitement fonctionnel, le formulaire ne sera envoyé que lorsque vous écrivez Google en entrée, sinon il renverra une erreur:

<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>
53
s3m3n

Essayer

onsubmit="return checkRegistration()"
8
Arun P Johny

essayer:

onsubmit="checkRegistration(event.preventDefault())"
1
pointydynamo