Tester les champs d'un formulaire ( plusieurs champs ) et bouton d'envoi ?

Eléphant du PHP | 419 Messages

31 oct. 2008, 14:33

Bonjour,
Voici le code avec lequel je test mes champs de formulaire, le seul soucis c'est qu'il faut que je mette autant de fois ce code qu'il y a de champs.
Comment faire pour inclure plusieurs champs dans cette fonction ?
champs : user ( celle qui est active pour l'instant ), pass, mail ?

Code : Tout sélectionner

<script type="text/javascript"> function valider(){ if(document.register.user.value != "") { return true; } else { alert("Saisissez le nom d'utilisateur."); return false; } } </script>
Et dans le champ form du formulaire :

Code : Tout sélectionner

onsubmit="return valider()"
Merci !!


2eme question :

Je voudrais savoir comment faire en HTML de remplacer le bouton submit par une image ??
Si ce n'est pas possible sans javascript, je voudrais inclure un bouton personnalisé ( que j'aurai fait avec l'image en question avec flashMX ou autre ... )
Merci !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

31 oct. 2008, 16:06

Salut,

1. plusieurs solutions
. soit parcourir tous les éléments du formulaire
- document.form.elements.length
. soit passer en paramètre les champs à valider function("param1,param2,param3") puis spliter sur la "," et boucler dessus
- document.form.elements["param1"]

2. <input type="image > :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 419 Messages

31 oct. 2008, 16:59

Merci =) je vais lire plus tard pour les formulaires.
ça fonctionne pour l'envois mais pour remettre à zéro (reset) les champs ??

Mammouth du PHP | 2937 Messages

31 oct. 2008, 17:02

mais pour remettre à zéro (reset) les champs ??
Pas même besoin de JavaScript pour ça, puisque le HTML fournit un bouton qui rétablit les valeurs par défaut des différents champs du formulaire :

Code : Tout sélectionner

<input type="reset" value="Annuler toutes les saisies" />

Eléphant du PHP | 419 Messages

31 oct. 2008, 17:04

mais pour remettre à zéro (reset) les champs ??
Pas même besoin de JavaScript pour ça, puisque le HTML fournit un bouton qui rétablit les valeurs par défaut des différents champs du formulaire :

Code : Tout sélectionner

<input type="reset" value="Annuler toutes les saisies" />
Bien sur mais en gardant une image au lieu d'un bouton ?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

31 oct. 2008, 18:53

Tu ne peux pas utiliser le type image pour le bouton reset.

Donc si tu veux garder une image il te faudra du javascript, sinon bidouiller un peu avec le type button : http://www.w3.org/TR/html4/interact/for ... def-BUTTON

Mammouth du PHP | 2937 Messages

31 oct. 2008, 19:22

sinon bidouiller un peu avec le type button : http://www.w3.org/TR/html4/interact/for ... def-BUTTON
Auquel cas il ne faudra pas oublier d'ajouter l'attribut type avec la valeur "reset" (sinon, l'élément BUTTON agira comme un bouton de soumission).

Code : Tout sélectionner

<button type="reset"><img src="ton-image.png" alt="Tout réinitialiser" /></button>

Eléphant du PHP | 419 Messages

31 oct. 2008, 21:34

J'ai essayé de faire une magouille en CSS :

Code : Tout sélectionner

.boutonreset { border: 0px; cursor: pointer; text-decoration: underline; background-image: url(images/del.png) } et <button type="reset" class="boutonreset"><img src="images/del.png"/></button>
Mais ça s'affiche en gris, il faudrait trouver un autre moyen.
Modifié en dernier par the_grinch le 01 nov. 2008, 00:18, modifié 1 fois.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

31 oct. 2008, 22:14

Tite erreur ici images.del.png

Eléphant du PHP | 419 Messages

01 nov. 2008, 00:18

Meme, ça change rien, ça reste grisé ...

Avatar du membre
ViPHP
ViPHP | 3008 Messages

01 nov. 2008, 00:21

Quand tu dis que ça s'affiche en gris, c'est le gris d'un bouton "normal" ? Essaie de jouer sur la taille en mettant la taille exact de ton image pour voir si c'est mieux.

Eléphant du PHP | 419 Messages

01 nov. 2008, 00:58

Pas moyen, ça fonctionnera jamais il me met trop de problème pour si peu, je vais le faire avec du javascript.
Merci quand meme =)