jquery访问动态生成的表单
我使用for循环生成了一个表单jquery访问动态生成的表单,jquery,ajax,django,Jquery,Ajax,Django,我使用for循环生成了一个表单 {% for id in data %} <form id="add_to_cart_{{id}}" method="POST" action="{% url 'add_to_cart' %}"> {{id}} <button type="submit" id="product_id_{{id}}" value="{{id}}">Add to cart</button> </form> {% endf
{% for id in data %}
<form id="add_to_cart_{{id}}" method="POST" action="{% url 'add_to_cart' %}">
{{id}}
<button type="submit" id="product_id_{{id}}" value="{{id}}">Add to cart</button>
</form>
{% endfor %}
$(此)
应该有您单击的按钮。所以可能是$(this).val()
而不是$(“#product_id”).val()
我最终找到了答案。注意:请不要投反对票,因为我在回答我自己的问题。它可能会帮助某人 对于动态生成的表单,每个表单都必须有不同的ID
id=“form\u id{{{id}}”
。然后向表单中添加一个类,因为该类对于多个元素可以是相同的
比如:
通过这种方式,您可以访问for循环生成的表单的数据
{% for id in data %}
<form id="add_to_cart_{{id}}" method="POST" action="{% url 'add_to_cart' %}">
{{id}}
<button type="submit" id="product_id_{{id}}" value="{{id}}">Add to cart</button>
</form>
{% endfor %}
<form id="add_to_cart_{{id}}" class="AddToCartClass" action= ...
jQuery(document).ready(function($){
$(document).on('submit', '.AddToCartClass', function(event){
event.preventDefault();
var prod_id = $(this).closest('form').find('#product_id').val();