Tengo una página en mi proyecto Asp.net mvc en Visual Studio 2015 donde quiero actualizar el carrito de compras del usuario con ajax cuando cambia la cantidad de un artículo. Pero tengo que obtener el código del artículo que se encuentra en otra entrada en el mismo div, pero no sé cómo obtenerlo. Todo funciona, solo necesito recuperar el código para enviarlo a la función "AsyncSauvPanier".
Aquí está la función Ajax:
<script> $('.quantite').change(function () { $.ajax({ url: '@Url.Action("AsyncSauvPanier", "Produits")', type: 'post', data: { quantite: $(this).val(), /* I Want to retrieve The Article Code here */ }, success: function (result) { if (result.status === "Success") { $('#nbArticlesPanierlayout').text(result.nbArticlesDansPanier); } }, error: function () { alert("An error has occured."); } }); }); </script>Aquí está el Div mostrando un artículo:
<div style="margin: 10px; position: absolute; left: 600px; top: 140px;"> @if (Session["hideQte"].ToString() != "True") { <p> <b>Panier</b> </p> <input style="display: none;" class="codeArticle" type="text" name="codeArticle" value="@Model.CODE_ART" /> <input style="max-width: 50px; text-align: right;" class="quantite" type="number" name="quantite" ng-model="quantite_@Model.CODE_ART" min="0" ng-init="quantite_@Model.CODE_ART=@pc.GetQuantiteActuelleProduitDansPannier(Model.CODE_ART, uniteAdmin)" required /> <span>{{prix_@Model.CODE_ART * quantite_@Model.CODE_ART | number:2}} $</span> } </div>Traté de ver la función de hermano para jquery pero no entiendo muy bien cómo usarla, por lo que cualquier ayuda sería muy apreciada, dígame si debo intentar aclarar
Si sabe si el objetivo será un hermano anterior, puede usar .prev() .
Descripción: Obtiene el hermano inmediatamente anterior de cada elemento en el conjunto de elementos coincidentes. Si se proporciona un selector, recupera el hermano anterior solo si coincide con ese selector.
La función .siblings() funcionaría de la misma manera.
<div> <input name="codeArticle" type="hidden" value="@code" class="codeArticle" /> <input name="quantite" type="text" value="" class="quantite" /> </div> $(".quantite").on("change", function(e) { ... var selector = ".codeArticle"; var codeArticle = $(this).prev(selector).val(); });Como le ha dado a la entrada una clase, puede usarla como selector de filtro.