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

Contributions JavaScript / AJAX Discussion :

Les formulaires (partie 1) Comment attribuer une valeur à l'attribut name d'un élément créé par un script ? [Fait]


Sujet :

Contributions JavaScript / AJAX

  1. #1
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 656
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 656
    Points : 11 153
    Points
    11 153
    Par défaut Les formulaires (partie 1) Comment attribuer une valeur à l'attribut name d'un élément créé par un script ?
    Comment attribuer une valeur à l'attribut name d'un élément créé par un script ?
    http://javascript.developpez.com/faq...amps#ajoutName


    Dans cette Q/R il y a ce code
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var monInput;
     
    // création de l'input
    monInput = document.createElement("input");
    monInput.type = "text";  
    monInput.name = "nameInput"; 
     
    monInput.id = "idInput";
    monInput.value = "";
     
    // ajout de l'input créé dans le formulaire
    document.getElementById("idFormulaire").appendChild(monInput);

    Il est indiqué ensuite qu'avec ce code
    Firefox retournera nameInput tandis que IE ne retournera rien.
    Je viens de vérifier avec IE 9 sous Vista, le code fonctionne et IE retourne bien la valeur de l'id de l'input créé (avec un doctype xhtml).

    Pire, si vous soumettez le formulaire, IE ne transmettra pas cet input !
    là par contre je n'ai aucun moyen de vérifier cette affirmation.


    N'ayant pas les moyens (navigateurs, serveur) de vérifier intégralement cette Q/R, je vais donc vous mettre à contribution
    Chers contributeurs, pourriez-vous vérifier intégralement le code ainsi que les affirmations de cette Q/R ?


  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 656
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 656
    Points : 11 153
    Points
    11 153
    Par défaut
    Personne pour une mise à jour de cette question ?

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 180
    Points : 44 893
    Points
    44 893
    Par défaut
    Bonjour,
    concernant IE, cela passe sous IE8,
    pas de soucis pour les autres navigateurs.

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 656
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 656
    Points : 11 153
    Points
    11 153
    Par défaut
    IE transmet donc l'input créé dynamiquement ? On récupère bien le contenu ? Et il n'est donc plus nécessaire de gérer l'exception et d'ajouter un test if (document.all) comme cela est proposé dans cette Q/R ?

    Dans ce cas la Q/R devient tout simplement :
    Comment attribuer une valeur à l'attribut name d'un élément créé par un script ?

    Le code suivant fonctionne à partir de IE8 et pour les autres navigateurs.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var monInput;
     
    // création de l'input
    monInput = document.createElement("input");
    monInput.type = "text";  
    monInput.name = "nameInput"; 
     
    monInput.id = "idInput";
    monInput.value = "";
     
    // ajout de l'input créé dans le formulaire
    document.getElementById("idFormulaire").appendChild(monInput);

    Pour les anciennes versions d'Internet Explorer (avant IE8), il faut intégrer l'attribut name dans la méthode createElement(). Pour plus de détails, voir le paragraphe [Obsolète] de cette Q/R.
    Qu'en pensez-vous ?

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 180
    Points : 44 893
    Points
    44 893
    Par défaut Relecture
    Pas de remarque.

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 656
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 656
    Points : 11 153
    Points
    11 153
    Par défaut


    Donc je tague la discussion pour signifier que l'on peut la mettre à jour.

Discussions similaires

  1. [FAQ] Les formulaires (partie 2) : Comment désactiver une zone de texte en cochant une checkbox ?
    Par Auteur dans le forum Contributions JavaScript / AJAX
    Réponses: 6
    Dernier message: 17/11/2013, 12h59
  2. Réponses: 3
    Dernier message: 21/09/2010, 09h19
  3. Réponses: 6
    Dernier message: 13/09/2010, 16h31
  4. Réponses: 0
    Dernier message: 01/10/2008, 13h57
  5. [XSLT] Comment attribuer une valeur à un attribut?
    Par citizen87 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/10/2006, 16h12

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