Javascript 使用ajax在django中创建类似按钮
如何使用ajax在Django中创建like按钮 我的html,我需要单击like按钮而不重新加载页面,ajax功能不起作用Javascript 使用ajax在django中创建类似按钮,javascript,django,ajax,django-views,django-templates,Javascript,Django,Ajax,Django Views,Django Templates,如何使用ajax在Django中创建like按钮 我的html,我需要单击like按钮而不重新加载页面,ajax功能不起作用 <form method="POST" action="{% url 'video:like' video.pk %}"> {% csrf_token %} <input type="hidden" class="likin" name="next&qu
<form method="POST" action="{% url 'video:like' video.pk %}">
{% csrf_token %}
<input type="hidden" class="likin" name="next" value="{{ request.path }}">
<button class="remove-default-btn" type="submit">
<i class="fa fa-thumbs-up" aria-hidden="true"><span>{{ video.likes.all.count }}</span></i>
</button>
您在单击按钮时添加了一个事件,但该事件不会停止表单提交。您的按钮的type=submit并提交表单。与其在按钮的单击上添加事件,不如在表单提交上添加事件并阻止它。接下来,使用ajax自己提交它 首先在表单标记中添加一个id:
<form method="POST" action="{% url 'video:like' video.pk %}" id="my-like-form">
<form method="POST" action="{% url 'video:like' video.pk %}" id="my-like-form">
$("#my-like-form").submit(function(e){
e.preventDefault(); // Prevent form submission
let form = $(this);
let url = form.attr("action");
$.ajax({
type: "POST",
url: url,
data: form.serialize(),
dataType: "json",
success: function(response) {
selector = document.getElementsByName(response.next);
if(response.liked==true){
$(selector).css("color","blue");
} else if(response.liked==false){
$(selector).css("color","black");
}
}
})
})