当我发布表单时,任何数量都会更新为第一个数量字段中的值。我不知道如何连接这个值的数量值和特定的提交按钮。
我在template.html中的表单
{% 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 %}我的观点(我使用django-cart作为我的购物车)
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'})我的javascript
function updateProductQuantity(){
$('button.update-product').click(function(){
var link = $(this).parents('form')
var quantity = $('#quantity').val() //I think my problem is here
$.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;
});
}发布于 2017-01-28 00:24:03
您可以这样做:
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”并获得它的值,你想在哪里获得目标表单#quantity的值。
https://stackoverflow.com/questions/41898421
复制相似问题