javascrip - formulaire et verification de saisie des données ! un pe - Programmation
Marsh Posté le 10-02-2002 à 21:07:41
dites mon sujet est pas clair ou ya personne qui vois comment le résoudre ????
Marsh Posté le 11-02-2002 à 19:39:11
bon dites yen a pas un seul ki a une idee ???
Marsh Posté le 11-02-2002 à 20:13:20
y'a plusieurs solutions, en voici une qui marche (au moins) sous ie.
deux problèmes :
1) analyser tous les champs
2) voir si leur valeur est différente de leur valeur par défaut
1) tu passes par la hiérachie du document : ie du code comme
<form name='myForm'>
<input ...
<select ...
</form>
est accessible en script en utilisant myForm. cette variable contient des pointeurs vers l'élément parent, et vers ses enfants.
ie
myForm.parentNode accède à l'élément parent
myForm.firstChild accède au premier fils
myForm.firstChild.nextSibling accède au second fils
de mémoire, tu peux même récupérer la liste des fils avec myForm.children[i], ou i est un entier compris entre 0 et myForm.children.length.
ensuite, il faut faire la différence entre les inputs et le texte. par ex :
<form id='myForm'>
<b>veuillez entrer du texte : </b>
<input>
</form>
myForm.firstChild pointera vers <b>veuillez ... </b>. pour faire le tri, il suffit de tester le nom des nodes : myForm.firstChild.tagName et regarder ce que tu veux tester (ici, == 'input' (ou 'INPUT', teste voir)).
2) maintenant, tester si c'est la valeur par défaut. la façon la plus simple est de l'encoder dans la balise en créant un attribut avec le nom de ton choix :
<form id='myForm'>
<input defaultvalue='valeurpardéfaut'>
tu peux donc tester si myForm.firstChild.defaultvalue == myForm.firstChild.value.
//
après réflexion, myForm.firstChild va vraissemblablement renvoyer la première node fils de la form, ie une node texte vide. donc passe par myForm.children[i].
le coup de la valeur par défaut encodée dans la balise marche sous ie, je ne sais pas si ça marche ailleurs. sinon, tu peux carrément écrire ton formulaire en javascript, ou créer un tableau global qui contient les valeurs par défaut de tes inputs.
Marsh Posté le 11-02-2002 à 21:03:12
merci de la repose !
je vais voir ce que je peux faire avec ca !
Marsh Posté le 10-02-2002 à 18:55:51
voila sur une page g un formulaire avec qq champs de saisie.
avant de faire submit je verifie que tous les champs aies bien été complétés par ce script :
function verif_mail_pb(){
if ((document.mail_pb.nom.value = "nom" ) || (document.mail_pb.mail.value = "mail" ) || (document.mail_pb.sujet.value = "sujet" ) || (document.mail_pb.message.value = "votre message" ))
{
alert("Veuillez saisir tous les champs, Merci" );
return false;
}
return true;
}
en fait les valeur par default sont les nom des champs pour implifier ( )
seulement je trouve que ca fait un peu crade ce code.
n'y aurais t il pas moyen de recuperer la liste des champs de ce formulaire et avec une boucle for de verifier tout ca ..
en fait ca donnerais qqch dans ce style je pense:
function verif_mail_pb(){
i=0
While ( (reste des champs a verifier) et (i=0))
if (champ_suivant == valeurpardefault) i=1;
if (i=1){
alert("Veuillez saisir tous les champs, Merci" );
return false;
}
return true;
}
avec valeur par default = le nom du champ
et pis comme suis un peu pressé si quelqu'un pouvait maider rapidement merci
voila !
[jfdsdjhfuetppo]--Message édité par jolly--[/jfdsdjhfuetppo]
---------------
L'Univers et la bétise humaine sont infinis ? Euhhh .... En ce qui concerne l'Univers, je n'en suis pas sûr... (Albert EINSTEIN)