javascript - 如何在 foreach (jquery) 中获取价值?
问题描述
我正在使用 jquery 和 asp.net (mvc) 制作购物车,在此我想添加一个功能,允许我更新特定产品的数量,为此我做了以下操作:
<table>
@{
if (Request.IsAuthenticated)
{
<tr>
<td style="width: 0px;"></td>
<td>Name</td>
<td></td>
<td>Qty</td>
<td>Price</td>
<td>Subtotal</td>
</tr>
foreach (var item in Model.cart_product)
{
<tr>
<td style="width: 3px;">
<a type="button" class="close" aria-label="Close"
onclick="eliminar(@item.IdCart_Product,@item.IdProduct)">
<span aria-hidden="true">×</span>
</a>
</td>
<td>@Html.DisplayFor(Model => item.Products.Names, new { code = item.IdProduct })</td>
<td></td>
<td>
<div class="quantity buttons_added">
<input type="number" title="Qty" class="input-text qty text" size="4" id="quantity" value="@item.quantity">
<input type="button" class=" btn btn-light" value="save" onclick="Update(@item.IdCart_Product,@item.IdProduct)">
</div>
</td>
<td>$@Html.DisplayFor(Model => item.Products.Price, new { code = item.IdProduct })</td>
<td>$@Html.DisplayFor(Model => item.SubTotal, new { code = item.IdProduct })</td>
</tr>
}
<tr class="total">
<td style="width: 0px;"></td>
<th>Total</th>
<td></td>
<td ></td>
<td></td>
<td>$@ViewBag.total </td>
</tr>
}
}
</table>
function Update(IdCartProduct,IdProduct) {
var quantity = $("#quantity").val();
var url = "@Url.Action("UpdateCart","Cart")";
var url2 = "@Url.Action("CartInf","Cart")";
var data = { IdCartProduct: IdCartProduct, quantity: quantity, IdProduct, IdProduct }
$.post(url, data).done(function (Answer) {
swal({
title: "Deleted",
text: Answer,
type: "success",
confirmButtonClass: 'btn-success',
confirmButtonText: 'Ok',
});
$.get(url2).done(function (answer) {
$("#myCart2").html(answer);
document.getElementById("myCart").style.display = "block";
});
});
}
public JsonResult UpdateCart(int? IdCartProduct, int? quantity, int? IdProduct)
{
var ServerAnswer = "Cart updated";
Cart_Product cartProducts = db.Cart_Product.Find(IdCartProduct);
//getting product stock
var QueryProducts= (from Products in db.Products
where Products.IdProduct == IdProduct
select Products).FirstOrDefault();
// if the product dosent have enough products in the stock, send error answer
if (QueryProducts.Stock>=quantity)
{
cartProducts.quantity = quantity;
cartProducts.SubTotal = QueryProducts.Price * cartProducts.quantity;
ServerAnswer = "Cart updated";
db.SaveChanges();
}
else
{
ServerAnswer = "We just have " + QueryProducts.Stock + " products in the stock ";
}
db.SaveChanges();
return Json(ServerAnswer);
}
该函数符合我想要的,但是当获取“数量”字段的值时,它只返回列表中第一项的值,我希望当用户编辑有问题的字段时,用几句话编辑相同的字段我需要根据产品的内容来获取字段的值,但是对此我不知道该怎么做
这就是它的外观,我想保存特定输入的数量,但它只取第一个值图像
解决方案
推荐阅读
- javascript - 悬停元素时如何使我的兄弟元素呈现黑色?
- css - SCSS 容器网格
- css - 如何覆盖 Safari 中用于粗体的字体?
- javascript - 如何在输入表单字段中插入当前日期作为值
- java - MacOS 上的 Java Swing 应用程序通过 ssh 引发无头异常
- node.js - Node.js 中的 http2 连接合并示例
- abstract - Haxe:使用抽象来定义类型组
- javascript - 弹出窗口后关闭浏览器
- spring-boot - 使用 Spring Boot 构建多租户应用程序
- asp.net - HTTP 重定向 - Google 负载均衡器和 Windows Server 上的无限循环