Validation de formulaire

ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008 - 11 juil. 2006 à 14:40
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008 - 12 juil. 2006 à 16:55
SAlut,
J'ai un soucis mon formulaire met 10 secondes  a se valider ....
tout ca a cause de mon onsave :

for ( var n=0;n<crmForm.all.length;n++ )
{
 if ( crmForm.all[n].Disabled )
  {
    crmForm.all[n].Disabled=false;
   }
}

J'ai fait un alert(crmForm.all.length) qui me retourne 3747 d'ou la lenteur quelqu'un a t'il une suggestion ???

Merci

++

"Aucun de nous ne sait ce que nous savons tous, ensemble." Lao Tseu inventeur du "copier coller" [8D]

11 réponses

ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
11 juil. 2006 à 15:12
for ( var n=0;n<crmForm.elements.length;n++ )
{
if ( crmForm.elements[n].Disabled )
{
crmForm.elements[n].Disabled=false;
}
}

ce qui porte a 399 occurence c'est quand meme mieux et moins de 1 seconde
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
11 juil. 2006 à 19:18
B
onjour

Ta boucle telle que écrite, je parle de la seconde est tout à fait correcte sauf pour Disabled qui s'écrit disabled

juste une petite optimisation pourquoi tester si

disabled


pour le mettre à false mets tout à false directement...




for ( var n= 0;n<crmForm.elements.length;n++ ){
  crmForm.elements[n]. d isabled =false;
}

;0)
0
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
12 juil. 2006 à 11:07
Je suis désolé mais pour moi c'est Disabled et non disabled qui ne passe pas (ca me met une erreur)
Et pour supprimmer le if ca peut etre une bonne idée à condition que l'opération soit plus courte que le if c'est pas bete en tout cas je vais tester!!!!

++

"Aucun de nous ne sait ce que nous savons tous, ensemble." Lao Tseu inventeur du "copier coller" [8D]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 juil. 2006 à 15:09
bonjour,

   ce qui me semble curieux c'est de mettre
      disabled ( ou Disabled ) true/false TOUS les 
      champs d'un formulaire ?

   c'est réellement ce qu'il faut faire ?
   car dans ce cas, il ne va plus servir ou il ne sert 
      pas à grand chose ce formulaire
   ( et peut-être document.crmForm.disabled ça baigne ?!?
     ou le cacher/montrer ... )







   ce ne serait pas mettre certains champs disabled true/false ?
   ( avec le même name, avec des id qui se ressemblent .... )
   ou rendre accessible un formulaire qu'à certaines conditions ?
   ==> le cacher, et le montrer quand les conditions sont remplis

   mais je n'ai peut-être rien compris...

cordialement   Bul   
Site
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
12 juil. 2006 à 15:31
oui je pense que tu as compris, en fait selon certainne condition (sur des listes deroulante ou des boutons radio d'autres champs deviennent accessible ou innaccessible)
Le soucis c'est que quand je les passe en disabled à l'enregistrement du formulaire bin ca enregistre pas les champs desactivé ce qui est logique mais en générale quand je les disabled je les vide aussi...
Donc quand l'utilisateur rappelle l'enregistrement il se retrouve avec des valeur de la BDD qui aurait du disparaitre mais qui sont toujours la

D'ou je met le petit code au dessus dans le onsave qui permet de revalider ces champs (Il y a une autres fonctions qui fait la meme chose grossomodo c'est ForceSubmit) ca donne :

For ( var n=0;n<crmForm.elements.length;n++ )
{
if ( crmForm.elements[n].Disabled )
{
crmForm.elements[n].ForceSumit=true;
}
}



Bon en ce qui concerne enlever le if pour gagner du temps ca marche pas j'ai fait 20 essai avec et sans je pert 500 ms (pour info je gagne 50 ms avec ForceSubmit donc pas grand chose mais l'interet de cette fonction est de la placer dans le code apres avoir fait un Disabled donc dans les onchange mais ca alourdi le javascript bref faut voir!!!)

Voila j'espere que je me suis pas embrouillé
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 juil. 2006 à 15:50
ce n'est pas que ça n'enregistre pas...
c'est que les champs ne sont pas transmis
( je crois avec disabled, commme si les
  champs n'ont pas de name par exemple )
c'est donc un problème de conception coté
  serveur... où on devrait réinitiliser dans la
  base de données, les champs non transmis
  par exemple ?
et en les mettant readonly au lieu de disabled ?
  je crois que c'est transmis ?
cordialement   Bul   
Site
0
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
12 juil. 2006 à 16:04
Le probleme c'est que c'est des actions coté client qui font que les champs doivent ou non etre disabled

Oui mais les champs qui ne sont pas modifier et qui ne sont pas grisé ne sont pas updater ...

Le readonly a le meme effet...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 juil. 2006 à 16:11
mettre readonly au lieu de disabled
cacher/montrer ces champs ( style.display ou style.visibility )
revoir le script coté serveur
....
cordialement   Bul   
Site
0
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
12 juil. 2006 à 16:17
On peut toucher au code coté serveur ...
C'est graphique on pose un champ qui correspond a une entrée dans la bdd et puis c'est tout
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 juil. 2006 à 16:34
ah... je me souviens

tu utilisais un produit/générateur/logiciel... 
   ( lequel est sans importance )
   et tu tente de "détourner" des fonctionnalités de ce produit.
à mon avis tu va droit dans le mur.
soit il faut concevoir les choses autrement
      comme l'autorise le produit avec ses
      contraintes, ses avantages...
soit il faut écrire quelque chose hors de ce produit.

cordialement   Bul   
Site
0
ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
12 juil. 2006 à 16:55
je ne detourne pas les fonctions du produit
La page a été crée avec le produit et il est prévu pour intégrer du javascript, il est vrai par contre que je ne suis pas du tout d'accord avec la conception meme de la page (le grand nombre de champ etc. et du javascript a qui mieux mieux) mais c'est pas moi qui décide malheureusement

"Aucun de nous ne sait ce que nous savons tous, ensemble." Lao Tseu inventeur du "copier coller" [8D]
0
Rejoignez-nous