Django删除确认
问题描述:
我有一个Django站点上的删除按钮的垃圾桶图标。Django删除确认
这只是一个带有i标签的锚标签,其中的href被设置为传递模型元素的id的删除视图。
它工作得很好,但我想创建一个对话框弹出窗口,要求在删除它之前进行确认。
我已经看到了一些方法来做到这一点,但他们都需要输入,而不是锚点。
我也需要在触控设备上进行这项工作。
如何将其更改为输入元素并将图标保留为按钮而不是显示提交按钮。我怎样才能让对话框弹出,当点击Yes时,将正确的url和id传递给提交?
任何意见将不胜感激。
答
最简单的方法是添加一个确认提示:
<a ... onclick="return confirm('Are you sure you want to delete this?')">Delete</a>
但你不应该做的内嵌JavaScript这样尝试添加一个类,它抽象掉。这是使用jQuery:
<a class="confirm-delete" ...>Delete</a>
$(document).on('click', '.confirm-delete', function(){
return confirm('Are you sure you want to delete this?');
})
答
让这成为你的锚标记:
<a class="icon-trash" id="delete-object" data-object-id="{{ object.id }}">Delete</a>
需要注意的是,我们有object.id
与属性。我们将需要在JavaScript部分。
,你可以写这样的事情在页面的右下角之前body
标签关闭:
与代码片段
在这里,您可以尝试演示UPDATE。
var elm = document.getElementById('delete-object');
var objectID = elm.getAttribute('data-object-id');
var resultDiv = document.getElementById('result');
elm.addEventListener('click', function() {
var ask = confirm('r u sure?');
if (ask && objectID) {
var r = "Page will be redirected to </object/delete/" + objectID + "/>";
resultDiv.textContent = r;
} else {
resultDiv.textContent = "User cancelled the dialog box...";
}
return false;
});
.delete-link {
background-color: red;
color: white;
border: 1px solid white;
cursor: pointer;
padding: 3px;
}
#result {
margin: 20px;
padding: 10px;
border: 1px solid orange;
}
<a class="delete-link" id="delete-object" data-object-id="3">Delete</a>
<div id="result"></div>
我会在哪里过的网址及ID – shenk
你说现在正在工作,所以你会见好就收,由于是:当你把正确的前
body
标签关闭它的代码应该工作并添加onclick事件。我想它是在'href =“/ object/24/delete”'中。为简洁起见,我把'......'作为其他属性。 – dotcomly谢谢您添加jquery版本,绝对有助于看到内联和jQuery版本在一起! – natureminded