У мене такий шаблон джанго такий:
{% 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 і оновити сторінку ...
Як я можу розмістити цю форму за допомогою коментаря?
Відповіді:
2 для відповіді № 1Ідентифікатори HTML повинні бути унікальними. Ви не можете мати декілька форм, які мають один і той же ідентифікатор. Натомість використовуйте клас.
<form class="comment-replyform" action="/comment/reply/{{comment.id}}/" method="post">
$(".comment-replyform").on(...)
Зауважте, що ви, здається, нічого не робите зі змістом форми, тому подання все-таки не виграє.