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

Le
stefen76
Bonjour,
Je rencontre un problème pour l'exécution de ce script de validation
de mon formulaire,
___________________________________________________
function spn_form_verif(formverif)
{
var spn_err_msg;
var spn_err_ctl;
spn_err_msg = "Certains champs ne respectent pas les règles de
gestion :<br/>";
spn_err_ctl = false;
if (formverif.elements['chp1'].value == "") {
spn_err_ctl = true;
spn_err_msg = spn_err_msg + '<br/>- Le champ "chp1" est
obligatoire.';
document.getElementById('chp1').style.border="2px solid red";
}
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";
}
if (spn_err_ctl == false) {
return true;
} else {
document.getElementById('spn_err_msg').innerHTML = spn_err_msg;
return false;
}
}
___________________________________________________
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

Merci à tous pour l'aide

Stéfen
www.splashcommerce.com
www.ville-commune.net
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
SAM
Le #1021887
___________________________________________________
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

stefen76
Le #1021886
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


Francis Spiesser
Le #1022857
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

SAM
Le #1028811
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

Mickaël Wolff
Le #1052449

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

stefen76
Le #1059931
On 19 fév, 14:20, 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


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


SAM
Le #1076970
On 19 fév, 14:20, 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


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



Publicité
Poster une réponse
Anonyme