Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Un dernier Hic sur un contrôle de saisie

3 réponses
Avatar
Le Retour
Bonsoir à tous,

Je vais en pleurer mes yeux à force de scruter l'écran en quête de solution.
Alors voilà le problème:

J'ai mis en place un contrôle de saisie de validité d'email qui fonctionne
lorsque je clique sur le bouton "envoyer", mais non lorsque j'appuie sur la
touche entrée du clavier (les alertes apparaissent, mais c'est quand même la
page de traitement qui s'ouvre ensuite). Aussi je cherche, soit à
neutraliser la touche entrée, soit à faire fonctionner le contrôle de saisie
également lorsqu'on appuie sur cette touche; bien sûr je n'y arrive pas.
Alors si vous avez une idée à me donner, je vous en remercie d'avance.

Voici le script:
<script type="text/javascript">
function verifForm() {
if (document.getElementById('email').value == "" ) {
alert("Vous n'avez pas indiqué votre adresse!");

return false;
}

mail=document.getElementById('email').value;
if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) {
return true
} else {
alert("Vous n'avez pas correctement saisi votre adresse!");

return false
}

document.getElementById("fo" ).onsubmit();
}

</script>,

et dans le body:

<FORM action="traitementmail.php" method="POST" id="fo"
Onsubmit="verifForm()">
<P CLASS=pr><INPUT TYPE="text" NAME="email" id="email"
SIZE=40><INPUT TYPE="button" NAME="submit"
VALUE="envoyer" SIZE=15 Onclick="verifForm()"></P></FORM>

Bien cordialement,


Thierry

3 réponses

Avatar
SAM
Bonsoir à tous,

Je vais en pleurer mes yeux à force de scruter l'écran en quête de solution.
Alors voilà le problème:


ben ... déjà tu emploies 2 fois la fonction
- onsubmit du form
- bouton submit

ensuite le onsubmit du form est incomplet

alors, le corrigé :

<FORM action="traitementmail.php" method="POST" id="fo" name="truc"
onsubmit="return verifForm()">
<P CLASS=pr>Votre adresse e-mail :
<INPUT TYPE="text" NAME="email" id="e_mail" SIZE@>
<INPUT TYPE="submit" VALUE=" envoyer ">
</P>
</FORM>


et pour le script :

<script type="text/javascript">
function verifForm() {
var mail = document.getElementById('e_mail').value;
// ou :
// var mail = document.truc.email.value;
if (mail == "") {
alert("Vous n'avez pas indiqué votre adresse!");
return false;
}
if ( (mail.indexOf("@")<0) || (mail.indexOf(".")<0) ) {
alert("Ce n'est pas une adresse valide!");
return false;
}
return true; // la fonction doit renvoyer true pour permettre l'envoi
}
</script>


Attention aux ' (apostrophe) dans le code JS
à transformer en ' pour ne pas être interprété (on escape le caractère)

--
sm

Avatar
Le Retour
Hé oui, vu comme ça...
Grand merci pour ces corrections;
cordialement,

Thierry


"SAM" a écrit dans le message
de news:471aba5c$0$5093$
Bonsoir à tous,

Je vais en pleurer mes yeux à force de scruter l'écran en quête de
solution.


Alors voilà le problème:


ben ... déjà tu emploies 2 fois la fonction
- onsubmit du form
- bouton submit

ensuite le onsubmit du form est incomplet

alors, le corrigé :

<FORM action="traitementmail.php" method="POST" id="fo" name="truc"
onsubmit="return verifForm()">
<P CLASS=pr>Votre adresse e-mail :
<INPUT TYPE="text" NAME="email" id="e_mail" SIZE@>
<INPUT TYPE="submit" VALUE=" envoyer ">
</P>
</FORM>


et pour le script :

<script type="text/javascript">
function verifForm() {
var mail = document.getElementById('e_mail').value;
// ou :
// var mail = document.truc.email.value;
if (mail == "") {
alert("Vous n'avez pas indiqué votre adresse!");
return false;
}
if ( (mail.indexOf("@")<0) || (mail.indexOf(".")<0) ) {
alert("Ce n'est pas une adresse valide!");
return false;
}
return true; // la fonction doit renvoyer true pour permettre l'envoi
}
</script>


Attention aux ' (apostrophe) dans le code JS
à transformer en ' pour ne pas être interprété (on escape le caractère)

--
sm



Avatar
SAM
Hé oui, vu comme ça...


cependant ta façon de faire aurait pu fonctionner,
ce n'est pas :
monForm.onsubmit();
mais
monForm.submit();
qu'il faut


<html>
<script type="text/javascript">
function verifForm() {
var mail = document.getElementById('e_mail').value;
if (mail == "") {
alert("Vous n'avez pas indiqué votre adresse!");
return false;
}
if ( (mail.indexOf("@")<0) || (mail.indexOf(".")<0) ) {
alert("Ce n'est pas une adresse valide!");
return false;
}
document.getElementById('fo').submit();
}
</script>
<FORM action="traitementmail.php;" method="POST" id="fo"
onsubmit="return verifForm()">
<P CLASS=pr>Votre adresse e-mail :
<INPUT TYPE="text" NAME="email" id="e_mail" SIZE@>
<INPUT TYPE="button" onclick="verifForm();" VALUE=" envoyer ">
</P>
</FORM>
</html>


--
sm