我有一个像这样的 django 模板:
{% for comment in service.comments.all %}
{{comment.comment}} -- commented by {{comment.user}}<br/>
{% for reply in comment.comment_replies.all %}
{{reply.comment_reply}} -- replied by {{reply.user}}<br/>
{% endfor %}
<form id="comment-replyform" action="/comment/reply/{{comment.id}}/" method="post">{% csrf_token %}
{{ comment_reply_form.as_p }}
<input type="submit" name="submit" value="Reply">
</form>
{% empty %}
No comments
{% endfor %}
这里我想使用ajax回复评论..这样页面就不会刷新.. 我已经为此编写了 javascript 代码..
$('#comment-replyform').on('submit', function(event){
event.preventDefault();
$.ajax({
url: $(this).attr('href'),
success: function(data) {
alert("Success");
}
});
})
在这里,我看到只有第一个评论回复表单的成功警报。当我从另一个评论回复字段发送时(因为许多评论可能有很多评论回复表单)。它不会调用ajax并刷新页面。 ..
如何发布带有评论消息的此表单?
最佳答案
HTML ID 必须是唯一的。您不能拥有多个具有相同 id 的表单。使用类来代替。
<form class="comment-replyform" action="/comment/reply/{{comment.id}}/" method="post">
$('.comment-replyform').on(...)
请注意,您似乎没有对表单内容执行任何操作,因此提交实际上仍然无法正常工作。
关于javascript - django ajax表单提交for循环中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32645940/