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

Problème exécution de fonction de validation de formulaire

7 réponses
Avatar
stefen76
Bonjour,
Je rencontre un probl=E8me pour l'ex=E9cution de ce script de validation
de mon formulaire,
___________________________________________________
function spn_form_verif(formverif)
{
var spn_err_msg;
var spn_err_ctl;
spn_err_msg =3D "Certains champs ne respectent pas les r=E8gles de
gestion :<br/>";
spn_err_ctl =3D false;
if (formverif.elements['chp1'].value =3D=3D "") {
spn_err_ctl =3D true;
spn_err_msg =3D spn_err_msg + '<br/>- Le champ "chp1" est
obligatoire.';
document.getElementById('chp1').style.border=3D"2px solid red";
}
if (formverif.elements['chp2'].value =3D=3D "") {
spn_err_ctl =3D true;
spn_err_msg =3D spn_err_msg + '<br/>- Le champ "chp2" est
obligatoire.';
document.getElementById('chp2').style.border=3D"2px solid red";
}
if (spn_err_ctl =3D=3D false) {
return true;
} else {
document.getElementById('spn_err_msg').innerHTML =3D spn_err_msg;
return false;
}
}
___________________________________________________
J'appel cette fonction sur le onsubmit de mon formulaire avec ceci :
<form name=3D"form_content" method=3D"post" onsubmit=3D"return
spn_form_verif(this);" action=3D"traitement.php">

Jusque l=E0 =E7a marche, mais m=EAme s'il y a des erreurs dans mes champs le=

formulaire est envoy=E9 au script de traitement...
Je ne comprend pas d'ou provient l'erreur

Merci =E0 tous pour l'aide

St=E9fen
www.splashcommerce.com
www.ville-commune.net

7 réponses

Avatar
SAM
___________________________________________________
J'appel cette fonction sur le onsubmit de mon formulaire avec ceci :
<form name="form_content" method="post" onsubmit="return
spn_form_verif(this);" action="traitement.php">

Jusque là ça marche, mais même s'il y a des erreurs dans mes champs le
formulaire est envoyé au script de traitement...
Je ne comprend pas d'ou provient l'erreur



moi non plus,
alors plus simple ?

function spn_form_verif(formverif) {
formverif = formverif.elements;
var spn_err_ctl = true;
var spn_err_msg = "Certains champs ne respectent pas les règles de
gestion :<br/>";
for(var i=0; i<formverif.length; i++)
if(formverif[i].type=='text' && formverif[i].value=='')
{
spn_err_mesg += '- Le champ : ' + formverif[i].name +
' doit être complété<br/>';
spn_err_ctl = false;
formverif[i].style.border = '2px solid red';
}
if(!spn_err_ctl)
document.getElementById('spn_err_msg').innerHTML = spn_err_msg;
return spn_err_ctl;
}

--
sm

Avatar
stefen76
On 19 fév, 13:51, SAM
wrote:
___________________________________________________

J'appel cette fonction sur le onsubmit de mon formulaire avec ceci :
<form name="form_content" method="post" onsubmit="return
spn_form_verif(this);" action="traitement.php">

Jusque là ça marche, mais même s'il y a des erreurs dans mes champ s le
formulaire est envoyé au script de traitement...
Je ne comprend pas d'ou provient l'erreur


moi non plus,
alors plus simple ?

function spn_form_verif(formverif) {
formverif = formverif.elements;
var spn_err_ctl = true;
var spn_err_msg = "Certains champs ne respectent pas les règles de
gestion :<br/>";
for(var i=0; i<formverif.length; i++)
if(formverif[i].type=='text' && formverif[i].value=='')
{
spn_err_mesg += '- Le champ : ' + formverif[i].name +
' doit être complété<br/>';
spn_err_ctl = false;
formverif[i].style.border = '2px solid red';
}
if(!spn_err_ctl)
document.getElementById('spn_err_msg').innerHTML = spn_err_msg;
return spn_err_ctl;

}

--
sm
Merci pour ton script, mais cela ne change rien... le formulaire est

quand même posté à la page de traitement.
Par contre si je mets un return false dans chaque test le script
s'arrête bien... En fait c'est le test en fin de test qui ne marche
pas...

if (formverif.elements['chp2'].value == "") {
spn_err_ctl = true;
spn_err_msg = spn_err_msg + '<br/>- Le champ "chp2" est
obligatoire.';
document.getElementById('chp2').style.border="2px solid red";
return false;
}

C'est un mystère...

Stéfen
www.splashcommerce.com
www.ville-commune.net


Avatar
Francis Spiesser
stefen76 avait prétendu :

C'est un mystère...



Il doit y avoir une erreur js quelque part
Au lieu d'affecter ta fonction à un onsubmit, tu mets return false dans
ton onsubmit et tu affectes ta fonction au onclick du bouton submit (en
veillant à replacer this par this.form).

Ensuite tu essayes avec firefox, parce que pour les erreurs js c'est
plus pratique

--
______
Francis (enlever .NIPUBNISOUMIS)
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le
fatigue" Voltaire

Avatar
SAM
Merci pour ton script, mais cela ne change rien... le formulaire est
quand même posté à la page de traitement.


ça veut dire qu'il y a une erreur dedans.
Tes noms de variables sont un peu compliqués (et certaines doivent être
mal orthographiées ?)

Voici monn truc corrigé et testé :

<script type="text/javascript">
function spn_form_verif(formverif) {
formverif = formverif.elements;
var spn_err_ctl = true;
var spn_err_msg = "Certains champs ne respectent pas' +
" les règles de gestion :<br/>";
alert(formverif.length);
for(var i=0; i<formverif.length; i++)
if(formverif[i].type=='text') {
formverif[i].style.border = '';
if(formverif[i].value=='')
{
spn_err_msg += '- Le champ : ' + formverif[i].name +
' doit être complété<br/>';
spn_err_ctl = false;
formverif[i].style.border = '2px solid red';
}
}
if(!spn_err_ctl)
document.getElementById('spn_err_msg').innerHTML = spn_err_msg;
return spn_err_ctl;
}
</script>

Par contre si je mets un return false dans chaque test le script
s'arrête bien... En fait c'est le test en fin de test qui ne marche
pas...


c'est là que serait la coquille ?


--
sm

Avatar
Mickaël Wolff

Je rencontre un problème pour l'exécution de ce script de validation
de mon formulaire,


Quel est le code du formulaire ?
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Avatar
stefen76
On 19 fév, 14:20, Francis Spiesser
wrote:
stefen76 avait prétendu :



C'est un mystère...


Il doit y avoir une erreur js quelque part
Au lieu d'affecter ta fonction à un onsubmit, tu mets return false dans
ton onsubmit et tu affectes ta fonction au onclick du bouton submit (en
veillant à replacer this par this.form).

Ensuite tu essayes avec firefox, parce que pour les erreurs js c'est
plus pratique

--
______
Francis (enlever .NIPUBNISOUMIS)
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le
fatigue" Voltaire


Merci à tous pour l'aide ça marche avec la solution ci-dessus sous ff
et ie.

Stéfen
www.splashcommerce.com
www.ville-commune.net


Avatar
SAM
On 19 fév, 14:20, Francis Spiesser
wrote:
stefen76 avait prétendu :

C'est un mystère...
Il doit y avoir une erreur js quelque part

Au lieu d'affecter ta fonction à un onsubmit, tu mets return false dans
ton onsubmit et tu affectes ta fonction au onclick du bouton submit (en
veillant à replacer this par this.form).

Ensuite tu essayes avec firefox, parce que pour les erreurs js c'est
plus pratique


Merci à tous pour l'aide ça marche avec la solution ci-dessus sous ff
et ie.


Je ne pense pas que ça puisse "vraiment" fonctionner...

Ça doit être prévu pour regarder dans la console de Fx s'il y a des
erreurs JS

Si ça fonctionne sans autre correction c'est encore plus mystérieux.

--
sm