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 :

function not defined


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut function not defined
    Bonjour,

    J'ai un code qui ne fonctionne pas sur ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <select id="idsite" name="idsite" onchange="modifiecode(this.value)">
    <option value="">Choisissez votre site affilié</option>
    <option value="207">http://www.avenir-affiliation.fr</option>
    </select>
    <script type="javascript">
    function modifiecode(idsite) {
    document.getElementById("code").value=cod+"&idsite="+idsite;
    }
    </script>
    <div class="text-center">
    <textarea name="code" id="code" readonly rows="4">
    http://www.axis-medias.fr/packcpm.php?id_membre=1</textarea>
    </div>
    J'ai un select qui si sa valeur change doit appeler une fonction javascript qui s'appelle modifiecode je lui passe la valeur de l'option choisie
    çà ne marche pas du tout j'ai regardé la console javascript et j'ai çà :

    Uncaught ReferenceError: modifiecode is not defined voirtagcampagne.php:76

    Il ne reconnaît pas la fonction modifiecode quelquesoit l'endroit ou je le place
    Quelqu'un aurait une idée ?

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Bonjour
    j'ai essayé ton code est il fonctionnel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function modifiecode(idsite) {
      document.getElementById("code").value=cod+"&idsite="+idsite;
    }
    il y a juste un bug la variable cod n'existe pas.
    je l'ai modifié pour éviter cette erreur et tout est OK
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <select id="idsite" name="idsite" onchange="modifiecode(this.value)">
    <option value="">Choisissez votre site affilié</option>
    <option value="207">http://www.avenir-affiliation.fr</option>
    </select>
    <script type="javascript">
    function modifiecode(idsite) {
    document.getElementById("code").value+="&idsite="+idsite;
    }
    </script>
    <div class="text-center">
    <textarea name="code" id="code" readonly rows="4">
    http://www.axis-medias.fr/packcpm.php?id_membre=1</textarea>
    </div>

    mais tout cela n'a pas grand intérêt. tu définis un tag select avec un attribut onchange.
    le moteur HTML va créer un DOMElement de type SELECT
    puis il va demander au moteur javascript de créer une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function(){
     modifiecode(this.value);
     return;
    }
    Il va associer cette fonction à l'événement onchange du DOMElement SELECT
    tu crée ensuite une deuxième fonction qui elle est globale.

    un simple
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id="idsite" name="idsite" onchange="document.getElementById('code').value+='&idsite='+this.value;">
    et le tour est joué.

    mieux si ta fonction est complexe
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <select id="idsite" name="idsite"><option value="">Choisissez votre site affilié</option>
    <option value="207">http://www.avenir-affiliation.fr</option>
    </select>
    <script type="javascript">document.getElementById('idsite').addEventListener(
      'onchange',
      function (element) {
        document.getElementById('code').value+='&idsite='+element.value;
        return true;
      }
    );</script>
    Ainsi tu ajoute la fonction sur l'événement onchange en maitrisant complètement l'association. fini les fonctions globales (si tu détruit l'objet SELECT la fonction disparait de la mémoire).
    fini les noms source d'erreur.

    A+JYT

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    Attention également à <script type="javascript"> qui n'existe pas, c'est <script type="text/javascript"> ou mieux maintenant <script> tout court en HTML5.

Discussions similaires

  1. [XL-2010] Sub or function not defined - boucle if conditions multiples
    Par zebeginer dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 15/07/2014, 14h39
  2. Compile error: sub or function not defined
    Par bsangoku dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2013, 14h12
  3. [AJAX] function not defined sous firefox 4 et 5
    Par vseb99 dans le forum AJAX
    Réponses: 0
    Dernier message: 20/07/2011, 15h53
  4. erreur function not defined
    Par reventlov dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/04/2006, 01h07

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