Forum de discussion
Forum « Programmation Javascript » (archives)
Re: Question de débutant en JS
Envoyé: 17 février 2004, 7h29 par Oznog
> Tu souhaites connaître mes fonctions et bien les voilà.
Personnellement je m'en balance de ton code, c'est pour t'aider que je l'ai demandé!
J'aimerais bien te dire de lire les tutoriels sur le formulaire qui t'aiderait beaucoup, notamment sur le "return" que tu utilise drôlement. Mais en regardant ton code il me semble que tu connaît ça déjà. D'un autre côté tu prend un bon détour. Est-ce qu'il faut patcher ce grand détour ou partir à neuf? En attendant tu peux toujours voir twValide 2.2 (http://www.trucsweb.com/Javascript/trucs.asp?no=332&type=5) il valide tout ce que tu désire, tu peux peut être t'en inspirer.
Il y a aussi tout le passage des objets et éléments de ton formulaire. Au lieu de te servir des fonctionnalité Javascript tu recible à chaque fois les éléments (window.document.forms[0].date_ref.value).
Ce que l'on peut dire déjà c'est que c'est un problème de structure et non pas de syntaxe, voiçi ce que je ferais :
1. Passe le formulaire en même temps (this) et retourne le "return" (il est fait pour ça) question d,annuler l'envoie si lle formulaire n'est pas valide.
onClick="return verif(this.form);" >
2. Tu peux alors faire dans ta fonction "verif" :
function verif(_form) {
nom_ref_bon = estpropre(_form.nom_ref.value);
C'est déjà ça. Mais ensuite tu peux optimiser ou plutôt automatiser tout ça, au lieu de passer chaque élément un après l'autre à la dûr comme dissent tes compatriotes. Tu peux boucler les éléments du formulaire, qui sont dans un tableau (array) justement pour ça (voir twValide).
3. Enfin, quand tu fais ton dernier test, if ( (nom_ref_bon == true)... Pourquoi ne pas aussi faire ce que tu fais déjà avec "estpropre" ? et retourner le "return" ?
if ( (!nom_ref_bon)&&(!date_ref_bon)&&(!desc_ref_bon)... {
// Le formulaire ne part pas
// En fait c'est l'action du bouton
// qui s'annule!
return false
}
4. Enfin, l'idéale est de passer par le formulaire et non pas par le bouton.
<form onsubmit="return verif(this);"
Etc.
Ciao
Oznog
Réponses
|