Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ajax在django中创建类似按钮_Javascript_Django_Ajax_Django Views_Django Templates - Fatal编程技术网

Javascript 使用ajax在django中创建类似按钮

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

如何使用ajax在Django中创建like按钮 我的html,我需要单击like按钮而不重新加载页面,ajax功能不起作用

  <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");
            }
        }
    })
})