当我发布表单时,任何数量都会从第一个数量字段中更新。我不知道如何为此值连接数量值和特定提交按钮。
我在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'})
答案 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。