微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sweetalert在Django模板上不起作用

如何解决sweetalert在Django模板上不起作用

我从下面的代码开始,将ID发送到删除模型对象的方法,但是始终发送第一个ID。

这是我的HTML和JavaScript代码

{% for yad in yads %}
  <form action="{% url 'del-yadd' %}" method="post" id="myform">
      {% csrf_token %}
      <button type="button" name="yidd" value="{{yad.id}}" id="btndelme"  class=" btn btn-danger" onclick="
   swal({
          title: 'warning!',text: 'do you want to delete?',type: 'warning',showCancelButton: true,confirmButtonColor: '#3085d6',cancelButtonColor: '#d33',cancelButtonText:'no',confirmButtonText: 'yes'
         },function(isConfirm) {
          if (isConfirm) {
             document.querySelector('#myform').submit();
            }});   
">delete</button> 
    
  </form>
{% endfor %}

这是我的Django视图代码: def delete_yadd(请求): id = request.POST ['yidd'] yad = Yadd.objects.filter(id = id).delete() 返回redirect('home')

解决方法

您的 SweetAlert 没有显示的原因是因为它需要使用 javascript 函数在 html 文档的末尾附近被调用。我改变的是你调用sweetalert函数的方式,如下所示:

{% for yad in yads %}
<form action="{% url 'del-yadd' %}" method="post" id="myform">
  {% csrf_token %}
  <button type="button" name="yidd" value="{{yad.id}}" id="btndelme"  class=" btn btn-danger" onclick="confirm()"></button>
</form>
{% endfor %}
<script>
    function confirm() {
        swal({
                title: 'warning!',text: 'do you want to delete?',icon: 'warning',showCancelButton: true,confirmButtonColor: '#3085d6',cancelButtonColor: '#d33',cancelButtonText: 'no',confirmButtonText: 'yes'
            },function (isConfirm) {
                if (isConfirm) {
                    document.querySelector('#myform').submit();
                }
            })
    }
</script>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。