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 :

Renommer un élément


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de TSalm
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 361
    Par défaut Renommer un élément
    Bonjour à tous,

    Je dois modifier l'attribut name (le nom quoi ) d'éléments.
    Je n'ai aucun problème avec Firefox et compagnie, mais IE me retourne un objet null lorsque je tentes d'accéder à cet objet via la commande <b>getElementsByName</b> :

    Voici un code de démo :
    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
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
     
    <a href="#" name="nameTest" id="idTest" onclick="alert('clicked')">Test...</a></p>
    </body>
    <script language="javascript">
    	document.getElementsByName("nameTest")[0].name = "otherTest";
    	alert("L'attibut 'name' de l'objet est maintenant :" + document.getElementById("idTest").name );
     
    	document.write("<h1>Accés via 'nameTest' (ancien nom)</h1>");
    	var obj = document.getElementsByName("nameTest")[0];
    	if (obj == null) document.write("=null");
    	for (i in obj) {
    		document.write(i+": "+obj[i]+"<br/>");
    	}
     
     
    	document.write("<h1>Accés via 'otherTest' (nouveau nom)</h1>");
    	var obj = document.getElementsByName("otherTest")[0];
    	if (obj == null) document.write("=null");
    	for (i in obj) {
    		document.write(i+": "+obj[i]+"<br/>");
    	}
    </script>
    </html>
    Il fonctionne normalement avec Firefox, mais avec IE c'est


    Savez-vous s'il est possible de renommer proprement un élément avec IE ?

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salux,

    On peut simplement pas modifier le name d'un champ de formulaire sous IE (ca serait pas mal de le mettre dans la FAQ)
    http://msdn.microsoft.com/workshop/a...ies/name_2.asp

    Edit: pour ceux créés avec createElement() seulement

  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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    Heu Gruik ils disent le contraire sur le lien que tu as donné ...
    Microsoft JScript allows the name to be changed at run time. This does not cause the name in the programming model to change in the collection of elements, but it does change the name used for submitting elements.



    The NAME attribute cannot be set at run time on elements dynamically created with the createElement method. To create an element with a name attribute, include the attribute and value when using the createElement method.
    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 Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Ah oui pardon, j'avais cru qu'il était créé dynamiquement

  5. #5
    Membre éclairé Avatar de TSalm
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 361
    Par défaut
    ... elle est bien créé dynamiquement dans le code sur lequel je travaille,

    mais ça disfonctionne de la même façon sur mon code demo, non ?
    Il y a une solution s'ils sont spécifiés directement dans le HTML ?

  6. #6
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Bein si le name est spécifié directement dans le code html, à priori ça marche

  7. #7
    Membre éclairé Avatar de TSalm
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 361
    Par défaut


    Bon, je passes alors à la solution n°2: faire passer les 82% d'utilisateurs de IE à Firefox

    merci Gruik

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 18h31
  2. [Algo] Trouver un arrangement ou une combinaison d'éléments
    Par Morvan Mikael dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 20/04/2013, 11h46
  3. [XSLT] Renommer un élément
    Par Isotrope2 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 06/04/2010, 08h14
  4. Supprimer un élément d'un tableau
    Par CaptainChoc dans le forum Langage
    Réponses: 15
    Dernier message: 23/12/2002, 23h14
  5. Renommer un repertoire
    Par Sitas dans le forum Langage
    Réponses: 5
    Dernier message: 14/08/2002, 11h56

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