Problème avec activation code javascript

cyr78 Messages postés 15 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 30 mars 2011 - 24 mars 2011 à 20:47
cyr78 Messages postés 15 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 30 mars 2011 - 30 mars 2011 à 14:13
Bonsoir,

Je galère depuis un moment pour essayer de comprendre le javascript. Je n'ai aucune notion en programmation. J'ai créé un formulaire (de commande) sous acrobat pro mais je n'arrive pas à rendre un champs obligatoire.
J'ai fais ce formulaire sous pdf car les utilisateurs doivent le remplir et l'envoyer dans une boite mail pour que les informations de ce formulaire soient utiliser sur un site internet. En fait, le formulaire sert en interne dans mon entreprise et on passe les commande chez un prestataire.

Donc dans ce formulaire, j'ai intégré un bouton "envoyer la commande" ce qui envoie le formulaire dumant rempli dans une adresse mail définit. Mais je voudrais avant l'envoie (automatique) une vérification sur un champs qui doit être obligatoirement rempli. J'ai fais le code suivant mais rien n'est bloqué, le doc. part quand même :

this.mailDoc(true, "cartesdevisite.fr@sodexo.com");
 
function validation()
{
if(document.getElementById('Budget').value == "")
{
        alert ('Vous avez oublié de saisir un champ!!!!');
         return false;     
}
return true;
}


Est ce que quelque peut m'aider ? où j'ai fais une erreur ? et comment activer la fonction validation ?

Merci, j'éspère avoir été assez clair pour exposer mon problème.

15 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
25 mars 2011 à 10:44
Salut,

this.mailDoc() est ta fonction d'envoie ?
A quoi correspond le premier paramètre ?

Avant l'envoi il faut que tu appelles ta fonction validation(), dans le code que tu nous montre tu la définies seulement, tu ne t'en sers pas. ça pourrait donner un truc du genre :
// on définit la fonction
function validation() { ... }
// on s'en sert dans une condtionnelle
if (validation())
  // si c'est bon on agit
  this.mailDoc(true, "cartesdevisite.fr@sodexo.com");
0
cyr78 Messages postés 15 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 30 mars 2011
25 mars 2011 à 18:43
Sa donnerai ca comme écriture du code ?

function validation() 

{
(document.getElementById('Budget').value == "")
{
        alert ('Vous avez oublié de saisir un champ!!!!');
         return false;     
}
return true;
 }

if (validation())
  this.mailDoc(true, "cartesdevisite.fr@sodexo.com","","","Commande de cartes de visite");
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
28 mars 2011 à 11:54
Re,

Oui (à part une erreur de frappe, un if oublié), ça donnerait un truc comac. L'as-tu essayé ?
0
cyr78 Messages postés 15 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 30 mars 2011
28 mars 2011 à 21:09
Bonsoir,

Pourrais-tu me dire où il manque if ? deplus, j'ai essayé comma ca mais il ne l'envoie même plus par mail et il ne vérifie pas non plus mon champs. Il me propose juste de faire un enregistrer sous.

As-tu une idée ?
0

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

Posez votre question
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
29 mars 2011 à 09:16
Re,

pour le if c'est ligne 4 dans ton code, il le manque juste avant ta conditionnelle.
Pour l'envoi qui ne se déroule pas je peux pas trop t'aider, ne connaissant pas la fonction mailDoc.
Dans l'absolu le code me parait bon. Pourraîs-tu m'en faire suivre un peu plus ? y'a peut-être un souci sur l'event de lancement, les noms d'identifiants, ou tout autres petites erreurs qu'on voit pas toujours.
0
cyr78 Messages postés 15 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 30 mars 2011
29 mars 2011 à 10:00
Bonjour,

Déjà, merci de prendre du temps pour m'aider.
j'ai testé un nouveau code :

function validation()
{
if (this.getField('Budget').value != "")
{
        alert ('Vous avez oublié de saisir un champ!!!!');
         return false;     
}
return true;
}
 
this.mailDoc(true, "cartesdevisite.fr@sodexo.com","","","Commande de cartes de visite");


mais toujours le même souci. Je ne sais pas si je dois mettre quelque chose dans les propriétés du champs obligatoire..

Et je ne sais pas comment appeler la fonction. car je pense que le code fonctionne mais rien ne le déclenche, est ce que c'est ca mon erreur ??
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
29 mars 2011 à 11:58
Je peux avoir la totalité du code ?

Sinon le javascript peut se débugger "à l'arrache", en collant des alert() un peu de partout. Teste si tu joins bien le bon contrôle de saisie, si sa value correspond bien à ce que tu avais tapé ... mais des try/catch avec alert() de l'exception.

Si ça marche pas, y'a des chances qu'il y ait des vraies erreurs, pas juste un fonctionnement imprévu ;)
0
cyr78 Messages postés 15 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 30 mars 2011
29 mars 2011 à 12:09
Au niveau du formulaire, je n'ai pas d'autres code car j'ai fais une conversion d'un word en PDF avec acrobat. J'y ai rajouté des champs "texte", case à coher, bouton radio, bouton pour envoyer le formulaire par mail. Et dans ce dernier bouton j'ai mis dans "l'onglet" action ce code javascript.

Je ne sais pas comment te faire parvenir le formulaire pdf si tu en as besoin pour voir.
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
29 mars 2011 à 14:38
Tu pourrais le poser sur megaupload et me faire suivre le lien ;)
Au fait, avec quelle appli montes-tu ton formulaire PDF ? En jouant un peu avec j'aurais peut-être une meilleure vision du souci.
0
cyr78 Messages postés 15 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 30 mars 2011
29 mars 2011 à 15:15
J'ai créé avec acrobat pro 10. (importer mon formulaire word)
Par contre, je ne sais pas comment mettre de fichier sur megaupload.
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
30 mars 2011 à 09:37
Re,

Je viens de tester ton fichier, je comprends maintenant comment ça marche ^^ (j'avais jamais fait de formuliare PDF). Alors dans le code de ton bouton il ne faut pas définir de fonction, mais directement taper le code. Dans ton cas ça donnerait :
if ((this.getField('Budget').value != "") 
    && (this.getField('nom').value != "")
    && (/* tous tes autres tests*/))
    this.mailDoc(true, "cartesdevisite.fr@sodexo.com","","","Commande de cartes de visite"); 
else 
    app.alert('Vous avez oublié de saisir un champ!!!!');


J'obtiens bien le résultat escompté :
- si 'Budget' est vide j'en suis averti,
- s'il est rempli un client mail s'ouvre.

A noter que tu pourrais également mettre le "Enregistrer sous" dans ta condition, qu'il te propose pas automatiquement d'enregistrer alors que ton formulaire est incomplet. Tu pourrais également tester la validité des données saisies ('nom' au format texte, 'budget' au format nombre ...)

Bonne continuation
0
cyr78 Messages postés 15 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 30 mars 2011
30 mars 2011 à 10:10
Bonjour,
Merci pour ton code mais quand je fais un copier /coller dans mon formulaire sa ne fonctionne pas ????

Est ce que tu pourrais le mettre sur megaupload pour que je vois comment tu l'as mis ?

ou peux-tu me dire si il ne faut pas faire de copier/coller ? je n'y comprends vraiment rien en code
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
30 mars 2011 à 10:19
Re,

dans mon code change :
if ((this.getField('Budget').value != "") 
    && (this.getField('nom').value != "")
    && (/* tous tes autres tests*/))

par :
if (this.getField('Budget').value != "")


J'avais mis ça histoire que tu vois où et comment mettre le reste de tes conditions de validation. Mais le champ "nom" ne doit pas exister, et le /* tous les autres tests */ doit même générer une erreur ;)
0
cyr78 Messages postés 15 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 30 mars 2011
30 mars 2011 à 14:12
Ok impeccable, après plusieurs essais, j'ai trouvé. Par contre, tu as raison, je pense que l"enregistrer sous doit se faire uniquement après que formulaire soit envoyé à l'adresse mail. Est ce que tu aurais une idée de code ?

De plus, est ce qu'il serait possible lorsque l'utilisateur clique sur le bouton radio "sur site" le champs de dessous "pour l'adresse de livraison) reprenne les informations nom, prénom, adresse,.... de la page 1 ? Et aussi de forcer l'écriture en minuscule ?
0
cyr78 Messages postés 15 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 30 mars 2011
30 mars 2011 à 14:13
J'ai oublié... est ce qu'il serait possible de mettre une fenêtre plus sympa ?
0
Rejoignez-nous