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

[JS] Passer un formulaire a une fonction

4 réponses
Avatar
Pat
Salut à toutes/tous,

Une portion de la page HTML qui contient un formulaire pour me
contacter. Je compte vérifier certains champs de celui-ci :

<html>
[ ... ]
<script type="text/javascript">
<!--
function Verif(form){
if (form.subject.value==""){
alert("Merci de saisir l'objet de votre message !");
return false;}
var patrn=new
RegExp("^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$");
var res=form.reply.search(patrn);
if (res<0){
alert("Indiquez une adresse de r&eacute;ponse valide !");
return false;}
else return true;
}
-->
</script>
[ ... ]
<form action="ok.php" method="post" onsubmit="return Verif(this.form);">
[ ... ]
<span>2.</span> Objet du message<br />
<input name="subject" type="text" onfocus="this.value=''"
value="Obligatoire" size="32" maxlength="50" /><br />
<span>3.</span> Adresse pour la r&eacute;ponse<br />
<input name="reply" type="text" onfocus="this.value='arrobase';"
value="SI vous souhaitez une r&eacute;ponse" size="32">
[ ... ]
<input type="submit" name="post" value="Envoyer" />
</form>
[ ... ]

Lorsque je soumet le formulaire, voici l'erreur que je trouve affichée à
la console de NS 7, et le formulaire est validé :-/
"Erreur : form has no properties". Bizarre, car je passe bien le
formulaire en paramètre de la fonction que j'appelle.
Que se passe t'il et comment y remédier ?

Merci par avance pour vos réponses :-)
@+...

fu2 : fciwa

--
Pat

4 réponses

Avatar
YD
Pat a écrit :

[ ... ]
<form action="ok.php" method="post" onsubmit="return Verif(this.form);">



Essaie avec :
<form action="ok.php" method="post" onsubmit="return Verif(this);">

Par ailleurs il vaut mieux éviter de donner à ses variables des noms qui ne reprennent pas des noms attribués par le DOM, par prudence.

--
Y.D.
Avatar
Pat
YD wrote:
Pat a écrit :

[ ... ]
<form action="ok.php" method="post" onsubmit="return
Verif(this.form);">



Essaie avec :
<form action="ok.php" method="post" onsubmit="return Verif(this);">



Ok merci, çà marche.

--
Pat
Avatar
Cenekemoi
Bonjour à Pat qui nous a écrit :
[ ... ]
<form action="ok.php" method="post" onsubmit="return
Verif(this.form);">
[ ... ]



Quand tu es dans la balise <form>, la variable "this" correspond au
formulaire ; contente-toit donc d'écrire :
<form action="ok.php" method="post" onsubmit="return Verif(this);">

"this.form" permet d'atteindre le formulaire pour les champs du
formulaire (par exemple "<input...")

--
Cordialement, Thierry ;-)
Avatar
Francis Spiesser
[ ... ]
<form action="ok.php" method="post" onsubmit="return Verif(this.form);">
[ ... ]



Verif(this) ou Verif(document.forms[0])

--
______
Francis (enlever .NIPUBNISOUMIS)
"Dans toute statistique, l'inexactitude du nombre est compensée par la
précision des décimales." Alfred Sauvy