J'utilise BeginCollectionItem et j'essaie de comprendre comment obtenir que chaque valeur de collection individuelle fasse une logique show/hide conditionnelle. Par exemple, si je le balisage de rasoir suivant:Afficher/Masquer la logique avec BeginCollectionItem
<div class="collection">
@using (Html.BeginCollectionItem(nameof(Item)))
{
<select class="select-class" id="select-id" asp-for="SelectExample">
<option value="a">a</option>
<option value="b">b</option>
</select>
<div class="show-if-b">b is selected</div>
}
</div>
je dois montrer le « show-if-b » div si l'élément « b » est sélectionné, sinon il doit se cacher. Cette logique doit exécuter le changement de la sélection et lorsque la page se charge ("b" pourrait être sauvegardé) donc je n'ai pas toujours un événement à attacher.
J'ai essayé différentes approches avec jQuery .closest(), .find() et .parents() mais je n'arrive pas à obtenir la valeur de sélection spécifique dans chaque collection.
Toute aide est grandement appréciée.
Pour le côté client, '$ ('select-class'). Change (function() {$ (this) .next ('. Show-if-b'). Show();});' et pour le serveur côté, vous pouvez toujours vérifier la valeur de la propriété du modèle (mais votre sélection n'a même pas un attribut 'name' et ne se liera à rien, donc ce n'est pas vraiment Désolé ce que vous faites) –
@StephenMuecke Désolé, j'utilise ASP.NET Core et je n'ai pas inclus ma balise 'asp-for' sur mon select qui génère un' nom'. J'ai édité mon exemple pour l'inclure. Je veux écrire une logique JavaScript côté client qui vérifie la valeur de select et affiche la div 'show-if-b' quand la sélection est b. J'ai besoin que cette logique s'exécute chaque fois que la sélection est changée et quand la page se charge. Mon problème est que cela fonctionne avec BeginCollectionItem. –
@StephenMuecke Je pense que je pourrais utiliser .closest() onchange de la sélection, mais je ne pense pas que cela fonctionnera sur le chargement de la page, car je ne sais pas comment spécifier chaque collection individuelle pour exécuter la logique. –