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 :

[POO] setAttribute() et IE


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut [POO] setAttribute() et IE
    Bonjour,
    J'ajoute des champs dans un formulaire dynamiquement. J'ajoute sur chaque champ des attributs mais IE ne permet pas d'ajouter n'import lesquels.
    Cet exemple fonctionne très bien avec Safari et FF mais pas avec IE6 et IE7

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    	<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
    	<title>Essai</title>
    	<script type="text/javascript" src="_javascript/utilitaire.js"></script>
    	<script type="text/javascript">
    		function ajouter(){
    			var select = document.createElement("select");
     
                           //-----------------------------------------------------
                           // Ajout d'attribut
                           //-----------------------------------------------------
    			select.setAttribute('onchange','modif();'); //Ne marche pas avec IE
    			select.setAttribute('name','select');// Ne pose pas de problème
                           //-----------------------------------------------------
     
    			var option1 = document.createElement("option");
    			option1.value = "1";
    			option1.innerHTML = "option 1";
    			var option2 = document.createElement("option");
    			option2.value = "2";
    			option2.innerHTML = "option 2";
     
    			select.appendChild(option1);
    			select.appendChild(option2);
    			document.getElementById('formulaire').appendChild(select);
    		}
    		function modif(){
    			alert('modif');
    		}
    	</script>
    </head>
    <body>
    	<?php
                    print_r($_POST);
            ?>
    	<form action="essai2.php" method="post" id="formulaire">
    		<input type="button" name="b1" id="b1" onclick="ajouter();" value="ajouter" />
    		<input type="submit" name="b2" id= "b2" value="submit" />
    	</form>
    </body>
    </html>
    L'attribut 'name' a bien été ajouter puisqu'une soumission du formulaire affiche bien [select] => n.
    Mais l'attribut onchange n'a pas été ajouté (la fonction modif() n'est jamais appelée).
    J'ai aussi essayé avec select.onchange = 'select' mais ça ne marche pas non plus.
    Des idées?

  2. #2
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Salut,

    Je pense qu'il faut que tu sépares ton code applicatif (donc la fonction appelée sur le onclick) du reste du code.

    La syntaxe que utilise ne fonctionnera pas, il faut faire


  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select.onclick = function(){modif();}
    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
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select.onclick = function(){modif();}
    Javascript étant un language relativement intelligent, les fonctions sont des objets, donc on peut y faire réference

  5. #5
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Je m'attendais à cette réaction de ta part

    en l'occurence modif est en effet un objet fonction, et javascript est tout à fait capable de le reconnaitre comme tel.
    Je préfère toutefois ma syntaxe car elle est générique et permet d'attribuer aux évènements des fonctions anonymes.
    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 !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    J'ai donc utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select.onchange = function(){modif();}
    et ça fonctionne avec tous les navigateurs.
    Merci beacoup pour vos multiples réponses et votre efficacité.

  7. #7
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Encore une victoire de canard pour le niveau du web français

    ()

  8. #8
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    ???
    c'est pour moi le canard WC ?

    Tu nous fais une crise de tartre ?
    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 !

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

Discussions similaires

  1. [POO] C'est quoi une classe en claire...???
    Par Spack dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 26/01/2009, 15h53
  2. [POO] stocker un objet avec setAttribute
    Par maxine dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/05/2008, 09h13
  3. [langage] Pb POO perl
    Par loothoof dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2004, 12h08
  4. [Débutante][jsp] request.setAttribute()
    Par phoebe dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 14/05/2004, 14h27
  5. lier un cube à un objet (POO)
    Par Hypnos dans le forum OpenGL
    Réponses: 12
    Dernier message: 26/08/2003, 21h46

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