j查询在多个文本框之间指定
jQuery specify between multiple textbox
我正在为数据库中的多个项目制作购物车,但是在添加文本框并添加var quantity
后,代码只能理解第一个文本框,并为所有其他添加到购物车链接添加该数量。
如何告诉程序根据与其关联的项目查找特定的文本框,就像它下面的行根据'data-id'
查找项目一样。
我尝试使用$(".qty-txt").children().value()
但仍然不知道如何指定要查找的 Anchor 标签。
<script type="text/javascript">
$(function () {
$(".AddLink").click(function () {
var quantity = $("#qty").val();
var recordToAdd = $(this).attr("data-id");
if (recordToAdd != '') {
$.post("/ShoppingCart/AddToCart", { "id": recordToAdd, "qty": quantity },
function (data) {
$('#cart-status').text(data.CartCount);
});
}
});
});
</script>
前 3 行是我在锚标记中的 Texbox(如果可能的话,宁愿不使用锚标记)
第二个锚标签是我的添加到购物车的链接。
<a class="qty-txt" data-id="@item.ID">
@Html.TextBox("Quantity", 1, new { @class = "qty-input", @id = "qty", size = 1 })
</a>
<a href="#" class="AddLink" data-id="@item.ID" data-toggle="modal" data-target="#myModal">
Add to cart
</a>
通过使用包含重复的id
属性来生成无效的 html
@Html.TextBox("Quantity", 1, new { @class = "qty-input", @id = "qty", size = 1 })
var quantity = $("#qty").val();
只会返回第一个元素的值,并带有id="qty"
您需要使用 new { id = "", ...}
删除 id
属性,或者只是使用
<input type="text" class="qty-input" size = "1" value="1" />
然后将文本框和"添加到购物车"链接包装在一个容器中,以便您可以使用相对选择器(不确定为什么将文本框包装在另一个<a>
标签中?
<div class="product">
<input type="text" class="qty-input" size = "1" value="1" />
<a href="#" class="AddLink" data-id="@item.ID" data-toggle="modal" data-target="#myModal">Add to cart</a>
</div>
将脚本修改为
$('.AddLink').click(function () {
var quantity = $(this).closest('.product').find('.qty-input').val();
var recordToAdd = $(this).data('id'); // correct usage to access data- attributes
if (recordToAdd != '') { // not sure why you need this (why would it ever be null?)
$.post("/ShoppingCart/AddToCart", { "id": recordToAdd, "qty": quantity }, function (data) {
$('#cart-status').text(data.CartCount);
});
}
});
只需选择$(".qty-input")
即可获取所有匹配的输入。否则,您将选择包装器元素列表...如果你这样做,那么你需要在包装对象的每个实例上使用循环进行导航。
相关文章:
- 浏览器之间的文本区域更新方式不同
- 有没有一种方法可以从两个标签之间提取文本,并以我选择的格式输出
- 使用javascript获取标记之间的文本
- 谷歌应用程序在两个标签之间编写目标文本
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- 如何使用JavaScript Regex替换字符串中双引号之间的文本
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- j查询在多个文本框之间指定
- 在<选项>标签之间切换时保存输入文本
- 文本未在边框之间居中
- 阅读标签之间的文本
- 在jQuery或JavaScript中获取两个字符串之间的文本
- 循环字符串以查找字符集之间的文本
- 如何使用javascript将文本框中的值限制为1-999之间的值范围
- 使用javascript接受1-999之间的值的文本框
- 在javascript中使用regex只选择标记之间的文本
- 获取javascript中以a到Z之间的特定字符开头的第一个文本的位置
- 需要正则表达式使文本在*bold之间
- 如何获取两个容器之间的文本
- 如何获取javascript中两个文本框之间的天数