【发布时间】:2018-10-04 19:47:52
【问题描述】:
我有一个表,它的值与我的产品列表循环,我有一个用于“数量”的文本框和一个用于“添加到购物车”的按钮。当我单击“添加到购物车”按钮时,我正在尝试执行此操作,它会检查数量值是否有值,然后仅针对该特定行禁用“数量”文本框。
Product.cshtml
<table id ="productList" class="table table-dark">
<tr>
<th>Product ID</th>
<th>Title</th>
<th>Description</th>
<th>Quantity</th>
<th>Add to cart</th>
</tr>
@foreach (var item in Model)
{
<tr class="active">
<td>@item.Id</td>
<td>@item.Title</td>
<td>@item.Description</td>
<td>@Html.TextBox("Quantity", "0", new { @class = "form-control" })</td>
<td><button class="btn btn-default pull-left" onclick="disableText(Quantity);" id="btn-addToCart">Add To Cart</button></td>
</tr>
}
</table>
javascript
function disableText(QtyVal) {
if(QtyVal.value == '')
{
document.getElementById("Quantity").value = 1;
}
}
目前我的项目的输出是每次我点击任何提交按钮时,它总是会更新第一行(这是不正确的)。
目标是更新数量并为该特定行禁用它
【问题讨论】:
-
您的 HTML 无效。
id="btn-addToCart"将重复的 ID 插入到表的每一行中。 HTML id 属性在页面上必须是唯一的。 developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id -
嗨@MarkSchultheiss,谢谢你。如何将唯一 id 传递给按钮本身?在 btn-addToCart[i] 之后添加一个整数?我说的对吗?
-
我发布了一个答案,应该显示如何使用每行上的按钮,而不需要 id,而是使用类。
标签: javascript c# jquery asp.net-mvc