我有一个像这样的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并刷新页面。 ..
如何使用评论信息发布此表单?
答案 0 :(得分:2)
HTML ID必须是唯一的。您不能拥有多个具有相同ID的表单。改为使用一个类。
<form class="comment-replyform" action="/comment/reply/{{comment.id}}/" method="post">
$('.comment-replyform').on(...)
请注意,您似乎没有对表单内容执行任何操作,因此提交仍然无法正常工作。