IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Récupération d'arguments sur une fonction


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de p0Kep0K
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 51
    Points
    51
    Par défaut Récupération d'arguments sur une fonction
    Hello!

    La question a déjà du être posée des dizaines de fois mais je ne trouve rien! En plus le problème m'était déjà arrivé mais je ne trouve plus rien dans mes archives!

    Voilà, c'est tout simple... c'est un contrôle d'un champ dans un formulaire. Si l'image uploadée n'est pas un JPEG, le formulaire n'est pas envoyé. J'aimerais en faire une fonction globale et réutilisable pour tous mes formulaires. Je mets donc comme arguments dans ma fonction, le nom du formulaire et le champ sur lequel l'action doit être lancée.

    Plus facile avec un peu de code! L'évènement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onSubmit="return ControlJPEG('this.form', 'NomChamp');"
    Et le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	function ControlJPEG(Formulaire, Champ)
    	{
    		var NomImage = document.Formulaire.Champ.value;
    		var Extension = NomImage.substring(NomImage.lastIndexOf("."));
     
    		if( (Extension != '.jpg') && (Extension != '.JPG') && (Extension != '') )
    		{
    			alert('message');
    			return false;
    		}
    		return true;
    	}
    Merci pour votre aide!

  2. #2
    Membre averti Avatar de nicocsgamer
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 321
    Points : 342
    Points
    342
    Par défaut
    J'ai le meme probleme.

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function ControlJPEG(Formulaire, Champ)
       {
          var NomImage = document.Formulaire.Champ.value;
    normal Formulaire est déja un objet formulaire !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var NomImage = Formulaire.Elements[Champ].value;
    tu as passé en paramètre l'objet formulaire donc tu accède directement à ses proriétés sans rajouter document devant

    par contre tu aurais passé le nom de formulaire , c'est à dire un string, alors là il aurait fallu faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var NomImage = document.forms[Formulaire].Elements[Champ].value;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut Re: Récupération d'arguments sur une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return ControlJPEG('this', 'NomChamp');"
    Pas besoin de this.form, car tu es déjà dans ton element form, donc this refere au formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function ControlJPEG(Formulaire, Champ)
    	{
    		var NomImage = Formulaire.elements[Champ].value;
    		var testExtension=/\.(jpg|JPG|jpeg)$/.test(NomImage);
    		if( !testExtension )
    		{
    			alert('message');
    		}
    		return testExtension;
    	}
    En utilisant les expressions régulières, c'est plus beau. J'ai juste un doute sur les ou (|) dans l'expression, je ne suis pas sur qu'on puisse en mettre 2 mais faut juste vérifier ce point.

    Bonne chance

  5. #5
    Membre du Club Avatar de p0Kep0K
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 51
    Points
    51
    Par défaut
    SpaceFrog, ta solution ne fonctionne pas!...
    Entre-temps j'ai retrouvé ce que j'avais fait et qui fonctionne parfaitement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var NomImage = eval("document."+Formulaire+"."+Champ+".value");
    Vu que les arguments sont repris comme étant du texte (string), j'utilise la fonction eval(). Elle permet d'exécuter un chaîne de caractères comme s'il s'agissait de la ligne d'un code Javascript...

    Voili, c'est tout bon!
    Merci quand même pour l'aide!

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    desolé, juste un problème de majuscule à elements...
    sinon ma solution focntionne
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par p0Kep0K
    SpaceFrog, ta solution ne fonctionne pas!...
    Et la mienne tout le monde s'en fout?????

    Sinon, pour toi p0Kep0K, je ne suis pas sur que ta solution fonctionne sous FFX.... Tu testes uniquement sous IE ou sous les deux?

  8. #8
    Membre du Club Avatar de p0Kep0K
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par denisC
    Citation Envoyé par p0Kep0K
    SpaceFrog, ta solution ne fonctionne pas!...
    Et la mienne tout le monde s'en fout?????
    Désolé on a répondu en même temps!!
    Pour l'instant je teste tout sur IE6 étant donné que tous les utilisateurs de ma console d'admin (car c'est pour une console d'admin!) sont sous IE! En plus de ca, je ne sais même pas s'ils savent qu'il existe d'autres navigateurs! Donc tu vois, à la limite, même si ca ne fonctionne pas sous FireFox!...

  9. #9
    Membre du Club Avatar de p0Kep0K
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2003
    Messages : 76
    Points : 51
    Points
    51
    Par défaut
    Je viens de tester, le script fonctionne parfaitement sous FireFox 0.8+ et sous Netscape 7+
    Nickel!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Match sur les argument d une fonction.
    Par gomisse dans le forum Langages fonctionnels
    Réponses: 4
    Dernier message: 03/03/2015, 22h55
  2. Transmission d'arguments sur une fonction anonyme
    Par Sylvercis dans le forum jQuery
    Réponses: 5
    Dernier message: 11/02/2015, 02h22
  3. Réponses: 13
    Dernier message: 17/09/2014, 19h09
  4. passer FILE* en argument d une fonction
    Par Monsieur_Manu dans le forum C
    Réponses: 9
    Dernier message: 10/04/2003, 18h56
  5. PerlDoc sur une fonction d'un module
    Par lesouriciergris dans le forum Modules
    Réponses: 2
    Dernier message: 13/03/2003, 21h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo