Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery在多个文本框之间指定_Javascript_Jquery_Html_Asp.net Mvc 5_Shopping Cart - Fatal编程技术网

Javascript jQuery在多个文本框之间指定

Javascript jQuery在多个文本框之间指定,javascript,jquery,html,asp.net-mvc-5,shopping-cart,Javascript,Jquery,Html,Asp.net Mvc 5,Shopping Cart,我正在为数据库中的多个项目制作一个购物车,但在添加一个文本框并添加var数量后,代码只理解第一个文本框,并为所有其他添加到购物车链接添加该数量 如何告诉程序根据与之关联的项查找特定的文本框,就像下面的行根据“数据id”查找项一样 我已经尝试使用$.qty-txt.children.value,但我仍然不知道如何指定要查找的锚标记 <script type="text/javascript"> $(function () { $(".AddLink").

我正在为数据库中的多个项目制作一个购物车,但在添加一个文本框并添加var数量后,代码只理解第一个文本框,并为所有其他添加到购物车链接添加该数量

如何告诉程序根据与之关联的项查找特定的文本框,就像下面的行根据“数据id”查找项一样

我已经尝试使用$.qty-txt.children.value,但我仍然不知道如何指定要查找的锚标记

<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行是锚定标签中的我的文本框,如果可能的话,我宁愿不使用锚定标签

第二个锚标签是我要添加到购物车的链接

<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>

只需选择$.qty input即可获得所有匹配的输入。否则,您将选择包装器元素的列表……如果您这样做,那么您需要在包装器对象的每个实例上使用循环进行导航。

通过使用包含重复id属性来生成无效html

@Html.TextBox("Quantity", 1, new { @class = "qty-input", @id = "qty", size = 1 })
变量数量=$qty.val;将只返回id为qty的第一个元素的值

您需要使用新的{id=,…}来删除id属性,或者使用

<input type="text" class="qty-input" size = "1" value="1" />

你的问题我不清楚。您是否在询问如何在单击.AddLink之前将.qty txt的实例作为目标?如果你能简化并只显示相关的客户端代码,这会有所帮助。这是一个每页有10个项目的网页。每个页面都有10个文本框和10个使用$的addtocart链接。对于所有addtocart链接,qty input仅使用插入第一个文本框中的数量。我需要的网站,以了解基于哪个链接是点击哪个文本框数量抓取的价值。如果需要更多的代码或信息,请随时询问,感谢您的回答和任何未来的帮助。非常感谢这解决了我的问题。对不起,如果我的代码和问题不清楚。这是我第一次使用jquery。再次感谢您在网站的这一部分停留了几天。
<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);
    });
  }
});