如何使用jQuery为按钮连接按钮和字段值for for循环从模板

时间:2017-01-27 16:18:14

标签: jquery python ajax django

当我发布表单时,任何数量都会从第一个数量字段中更新。我不知道如何为此值连接数量值和特定提交按钮。

我在template.html中的表单

redirect_to dynamic_page_path(page), notice: 'Hello'

我的观点(我使用django-cart购买我的购物车)

{% for item in cart %}
    <form action="{% url 'product_update' item.product.id %}" method="POST">
      {% csrf_token %}
      <input type="number" class="form-control" id='quantity' value="{{ item.quantity }}">
      <button type="submit" class="btn btn-link update-product">
          <span class="glyphicon glyphicon-refresh"> </span>
      </button>
    </form>
{% endif %}

我的javascript

def product_update(request, id):
    product = Product.objects.get(id=id)
    cart = Cart(request)
    quantity = request.POST['quantity']
    unit_price = product.price

    cart.update(product, quantity, unit_price)
    return JsonResponse({'status': 'success'})

1 个答案:

答案 0 :(得分:1)

您可以这样做:

 var quantity = $(this).parents('form').find('#quantity').val();

或更高效地您可以选择表单本身。例如:

 $('form').on('submit', function(){
    var link = $(this);
    var quantity = $(this).find('#quantity').val();
    $.ajax({
        'url': link.attr('action'),
        'type': 'POST',
        'dataType': 'json',
        'data': {
            'quantity': quantity,
            'csrfmiddlewaretoken': $('input[name="csrfmiddlewaretoken"]').val()
        },
        'success': function(data, status, xhr){
            alert(data['status']);
            return false;
        }
    });
    return false;
});

你的问题是你在页面上选择第一个“#quantity”并获得它的价值。你想在哪里获得目标形式#quant's value。