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 :

Listes Liées: vider balise select : innerHTML


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut Listes Liées: vider balise select : innerHTML
    Bonjour,


    Contexte :
    n listes successives de <select> liées en Ajax, non contenues dans un formulaire

    Résumé du problème :
    Mes balises <select> ne se réinitialisent pas correctement sous IE (fonctionnent ss FFX). Le code généré montre un noeud texte "Selection" avant une balise vide <option></option>, alors que j'ai besoin de <option value="none">Selection</option>

    HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="truc">
    <select id="subject" onchange="xhr_request(this, readData);">
    	<option value="none">Selection</option>
    </select>
    </div>
    JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var oSelect = document.getElementById("subject");
    oSelect.innerHTML='<option value="none">Selection</option>';
    .. puis je remplis les options ..

  2. #2
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut Listes Liées: remise à zero de la balise select n+1
    Yes, j'ai trouvé : en fait la méthode innerHTML n'est pas correcte et encore moins universellement X-browsers (en tous cas IE et FF).

    Résumé du problème :
    Afin de réinitialiser sa balise <select>, si l'on veut être compatible avec IE et FF actuels, je viens de m'apercevoir qu'il vaut mieux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    oSelect.options.length = 0;
    puis créer les options de <select> (plusieurs méthodes selon W3C/IE/NN)
    que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oSelect.innerHTML= '<option value="none">Selection</option>';
    qui fonctionne sous FF mais pas sous IE qui a visiblement une interprétation différente de FF.

    Comme c'est ma matinée des grandes découvertes, et que j'ai ramé pour trouver (normal, les découvertes, 1492, ramer ... c'est mauvais, désolé ), je partage :

    - Contexte :
    n listes successives de <select> liées en Ajax, non contenues dans un formulaire

    - Objectifs :
    Remplir la liste n+1 des informations contenues dans la dB selon le choix émis par le client dans la liste n
    Réinitialiser la liste n+1 sur un nouveau choix de la liste n

    - => Comment réinitialiser sa liste <select> suivante ::
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var oSelect = document.getElementById(balise_select_n_plus_1);
    	oSelect.options.length = 0;
    	oOption = document.createElement("option");
    	oInner  = document.createTextNode("Selection");
    	oOption.value = "none";
    	oOption.appendChild(oInner);
    	oSelect.appendChild(oOption);
    Et ensuite, il n'y a plus qu'à remplir les options de <select> avec les infos récupérées de la dB. (plusieurs méthodes là aussi)

    C'est ma méthode, il y a surement mieux, mais celle-ci fonctionne bien sous FF3.5 et IE8.

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

Discussions similaires

  1. selected dans la deuxième liste liée déroulante
    Par steph_arrow dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/07/2011, 18h07
  2. Liste liées avec IE et innerhtml
    Par greg91 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/06/2011, 15h29
  3. Réponses: 1
    Dernier message: 29/05/2010, 18h22
  4. Balise <select> et espaces
    Par Gamdwin dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/06/2005, 15h28
  5. Réponses: 4
    Dernier message: 18/11/2003, 16h08

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