【问题标题】:Use SIMPLE javascript to confirm deletion in Django在 Django 中使用 SIMPLE javascript 确认删除
【发布时间】:2014-08-15 15:40:44
【问题描述】:

我知道这个问题还有其他版本,但我发布了这个问题,因为它们都没有提供我想要的。

我想要的只是

  • 用户点击“删除”
  • 用户获取 JS 确认对话框
    • 如果是
      • 继续删除
    • 如果否
      • 什么都不做

我正在使用 Django 的通用 DeleteView

class CommentDelete(DeleteView):
    model = Comment
    success_url = 'index.html'
    template_name = 'index.html'

    @method_decorator(login_required)
    def dispatch(self, *args, **kwargs):
        return super(CommentDelete, self).dispatch(*args, **kwargs)


    def get_object(self, *args, **kwargs):
        obj = super(CommentDelete, self).get_object(*args, **kwargs)
        if not obj.owner == self.request.user:
            raise Http404
        return obj

我的删除按钮如下所示

<h2><a href="comment/{{ cmt.id }}/delete" class="cmt_del">
    Delete
</a></h2>

--编辑-- 我设法启动了对话框,但不知道下一步该做什么。

当我在确认对话框中单击“是”时如何删除特定评论?

【问题讨论】:

    标签: javascript jquery python django


    【解决方案1】:

    如何添加自定义数据属性以便于访问?

    [HTML]
    <a href="comment/{{ cmt.id }}/delete" class="cmt_del" data-confirm="true">
        Delete
    </a>
    
    [jQuery]
    $('*[data-confirm="true"]').on('click', function() {
        return confirm("Are you sure?");
    });
    

    【讨论】:

    • 如果对话框返回false,post动作将被阻止。
    • 好的,现在可以了。但是,在我点击确定并进入我的索引页面后,评论并没有被删除..你猜吗? (顺便说一句,我在调度方法中更改了 response = ... 以返回 ...)
    【解决方案2】:

    你应该阻止按钮点击的默认操作

    $(document).ready(function(){
        $('.cmt_del').click(function(e){
            e.preventDefault();
            var a = confirm('Sure?');
            if(a){}
            else if(!a){}
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2016-09-20
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 2018-02-03
      相关资源
      最近更新 更多