Question

Je suis en train de définir les valeurs d'un menu contextuel dans Dashcode programme. Je peux modifier le texte / valeur de certains celles par défaut définies statiquement (de l'inspecteur), mais pas ajouter ou supprimer. Lorsque la vue démarre, il doit prendre un nombre variable d'options.

    var popup = document.getElementById('popup');
    //popup.options = []; /* Doesn't clear the list */
    //popup.options.length = 0; /* Doesn't clear the list */
    popup.options[0].text = "Option 1";
    popup.options[0].value = "123";

Comment puis-je modifier la liste? (LMGTFY les réponses non requis:)

Était-ce utile?

La solution

Je l'ai résolu comme celui-ci à la fin:

//remove all
if (popup.hasChildNodes()) {
    while (popup.childNodes.length >= 1) {
        popup.removeChild(popup.firstChild);       
    }
}

//add new
$.each(items, function(i, item) {
    var option = document.createElement("option");
    option.text = item.name;
    option.value = item.id;
    popup.appendChild(option);      
});

Autres conseils

Juste un coup de couteau, mais vous ne pourriez pas construire l'ensemble pop-up en JavaScript et définir le nombre d'éléments dans le menu déroulant / pop-up en passant des paramètres. Ensuite, lorsque vous souhaitez modifier des éléments que vous pouvez appeler le JavaScript avec de nouveaux paramètres?

Ou ai-je mal compris la question.

lorsque je tente de lier les éléments du menu pop-up dynamique similaire comme vous le faites, je vois les valeurs i affecter à des éléments de menu contextuel sont corrects, mais non des éléments sont affichés dans la fenêtre contextuelle.

Y at-il quelque chose que je suis absent? Voici mon code:

var ddlCurrencyCode = document.getElementById ( 'ddlCurrencyCode'); si (ddlCurrencyCode.hasChildNodes ()) {     tandis que (ddlCurrencyCode.childNodes.length> = 1) {           ddlCurrencyCode.removeChild (ddlCurrencyCode.firstChild);
    } }

for (var i = 0; i         var ddlItem = document.createElement ( "ddlItem");         ddlItem.text = row [ 'key'];         ddlItem.value = row [ 'valeur'];         ddlCurrencyCode.appendChild (ddlItem);
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top