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>
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>
Essayer
onsubmit="return checkRegistration()"
essayer:
onsubmit="checkRegistration(event.preventDefault())"