Carlin Modèles - Comment marquer option dans la liste Déroulante sélectionnée
J'ai un Carlin modèle qui utilise Bootstrap 4 comme la "mise en page" et la réception de données à partir d'un Express/Mangouste serveur.
Je suis le remplissage d'un formulaire à partir de MongoDB, de sorte que le contenu peut être modifié. J'ai été la recherche de moyens pour faire une liste déroulante liste sélectionner une option en fonction de la valeur de mongoDB document.
J'ai vu des moyens d'établissement de la liste déroulante liste à partir de zéro et réglage d'une option "selected", mais la forme est déjà produit et a une liste déroulante liste déjà en place. J'ai juste besoin de faire correspondre l'option avec la valeur de mongoDB document et définissez l'option afficher dans la liste.
Le Carlin modèle est comme suit:
.row
.col-sm-6
.form-group
label.control-label.requiredField(for='propertyType')
| Property Type
span.asteriskField *
.col-xs-12
select#propertyType.select.form-control.input-lg(form='addProperty', name='propertyType')
option(value='0') -- Select --
option(value='6') Home
option(value='7') Condo
option(value='10') Single Family Home
option(value='11') Town House
option(value='12') City Apartment
option(value='13') Villa
script.
var propertyType = document.getElementById('propertyType');
for (var i = 0; i < propertyType.options.length; i++) {
if (propertyType.options[i].value = #{property.typeId}) {
propertyType.options[i].selected = 'selected';
propertyType.selectedIndex = i;
break;
}
}
Si je respecte le code de la liste, l'option réelle qui obtient une nouvelle valeur est le premier '-- Select --' qui a sa valeur a changé de '0' à '6', qui est la valeur de MongoDB document.
Si je change le javascript pour transmettre la valeur #{propriété.TypeId} à la "selectedIndex" comme ceci:
propertyType.selectedIndex = #{property.typeId};
Alors la valeur de l'indice de change et le "selected" les changements d'option à '6', mais cette sélectionne ensuite la 6ème option des options et non pas celui avec la valeur de '6'.
Menus déroulants sont la seule chose que je n'arrive pas à remplir de sorte que toute aide serait grandement appréciée.
OriginalL'auteur Pandafinity | 2016-10-12
Vous devez vous connecter pour publier un commentaire.
Si vous avez juste besoin de montrer une option de pré-sélectionné, puis je ne pense pas que vous avez besoin d'utiliser le javascript pour cela. Vous pouvez essayer ceci:
En supposant que cette liste déroulante affiche les valeurs correspondant à
property.id
, elle marquera leselected
attribut aussi vrai pour lesoption
dont la valeur correspond à la valeur dansproperty.id
. Sinon, la première option sera affichée sélectionnée par défaut.Oui il faudrait une grande quantité de code mis à jour. Mais vous pouvez utiliser une boucle pour parcourir les différentes options et de mettre à la condition sélectionnée à l'intérieur de cette boucle. Pourvu que cela soit possible dans votre cas.
Je suis désolé, Mohit, mais je vois cela comme une solution inefficace. Surtout si vous avez d'autres flux de travail qui utilisent des identifiants différents pour faire quelque chose d'applicable à être "sélectionné". Dire si vous avez une dynamique d'ensemble de données qui ont des groupes que l'utilisation de différents sélecteurs de définir la valeur par défaut? Vous devez ajouter plus de code pour définir entre ces sélecteurs... Merci bien.
...sur une note de côté, je l'ai fait essayer votre solution, juste pour voir, et ça ne fonctionne pas..
Je pense que j'ai été effectivement obtenir quelque chose de mal. C'est encore de me donner 'selected=""' mais ça fonctionne maintenant. Merci pour votre aide.
OriginalL'auteur Mohit Bhardwaj
J'ai utilisé Mohit Bhardwaj réponse dans une boucle for pour une solution simple.
OriginalL'auteur sshow
Mise à JOUR
Espère que c'est ok pour répondre à ma propre question. Je l'ai fait essayer Mohit de l'approche, mais il ne fonctionne pas pour moi.
J'ai ajouté un 'script." l'article sous chaque
<select>
d'entrée:OriginalL'auteur Pandafinity
Voici une manière de le faire sans exiger une balise de script ou de dérouler la boucle à tous.
Cela sera la première option dans la liste pour "sélectionné" en utilisant l'attribut définissant la syntaxe (si
selected
est vrai lors de l'évaluationselected=selected
, il va ajouter la balise).OriginalL'auteur Mark B
C'est très large
S'il vous plaît ajouter explication de votre réponse
utiliser express générateur de construire votre application dans le dossier et lancer json paquet ,
M. Saeed ---j'ai JUSTE AJOUTÉ le PACKAGE.JSON trop
OriginalL'auteur aziz sallam
Regardant la documentation ici j'ai trouvé une solution qui ne nécessite pas de javascript et fonctionne en ligne.
C'est la façon dont je l'ai utilisé dans mon code:
OriginalL'auteur K Rob