2009-12-08 2 views
2

J'ai une entrée de sélection html avec un ensemble d'options par défaut (elle a un ID). J'ai aussi un objet JSON qui ressemble àModifier les OPTIONS de SELECT HTML en utilisant un objet json dans FBJS

var replacement_options = {'value 1':'display 1', 'value 2':'display 2' ....

Comment puis-je remplacer les options de la sélection avec les valeurs et affiche de l'objet JSON via Facebook JS? (FBJS)

+1

Je voudrais pouvoir vous donner plus upvotes - Je suis presque FBJS (et vieux) js plaine analphabètes et je l'ai été cogner la tête contre ce depuis plusieurs jours. –

+0

Merci, fbjs est un peu frustrant, parce que beaucoup de réponses simples qui sont partout sur Internet ne fonctionnent pas bien. Pour le prochain projet je peux juste l'iframe. – RobKohr

Répondre

2

Après avoir assemblé quelques trucs ensemble, j'ai été capable de créer une fonction pour le faire.

//accepts a object for options {value1:display1, value2:display2... 
    function updateSelectOptionsWithJSON(element_id, options, first_display, first_value) 
    { 
      var choiceList = document.getElementById(element_id); 
      for(var count = choiceList.getOptions().length - 1; count > -1; count--) 
      { 
        var node = choiceList.getOptions()[count]; 
        choiceList.removeChild(node); 
      } 
      //you can remove these next 4 lines and the last two parameters of this function 
      //if you just want options to come from the secton parameter 
      var node = document.createElement('option'); 
      node.setTextValue(first_display); 
      node.setValue(first_value); 
      choiceList.appendChild(node); 

      for(key in options) 
      { 
        var node = document.createElement('option'); 
        node.setTextValue(options[key]); 
        node.setValue(key); 
        choiceList.appendChild(node); 
      } 
    } 

1

essayer de jouer avec la fonction FBJS selectNode.removeChild décrit dans l'entrée wiki FBJS FBJS

vous aurez également besoin d'utiliser

var option = document.createElement('option'); 
selectNode.appendChild(option); 

pour créer les nœuds d'option dans le nœud de sélection

Questions connexes