我有这样的链接。
<a href="delete.php?id=1" class="delete">Delete</a>
如果用户点击它的话。一个确认应该弹出,然后只有当用户点击是,它应该转到实际的网址。
我知道这可以防止默认行为
function show_confirm()
{
var r=confirm("Are you sure you want to delete?");
if (r==true) { **//what to do here?!!** }
}
$('.delete').click(function(event) {
event.preventDefault();
show_confirm()
});
但是,在确认之后,我如何继续访问该链接或向该链接发送ajax post?
发布于 2011-07-26 04:33:49
您可以在单击中完成所有这些操作:
$('.delete').click(function(event) {
event.preventDefault();
var r=confirm("Are you sure you want to delete?");
if (r==true) {
window.location = $(this).attr('href');
}
});
或者您可以通过将单击的元素传递给函数来完成此操作:
function show_confirm(obj){
var r=confirm("Are you sure you want to delete?");
if (r==true)
window.location = obj.attr('href');
}
$('.delete').click(function(event) {
event.preventDefault();
show_confirm($(this));
});
发布于 2014-12-11 22:06:34
我花了一段时间才弄明白,所以我想我应该发布我的解决方案。
$('.delete').click(function(e){
if(confirm('Are you sure?')){
// The user pressed OK
// Do nothing, the link will continue to be opened normally
} else {
// The user pressed Cancel, so prevent the link from opening
e.preventDefault();
}
}
我在想用错误的方式确认。确认将阻止站点自动打开,并等待用户的输入。所以基本上,你需要把你的preventDefault移到else。
因此,只有当他们单击Cancel时,您才能阻止链接打开。这也允许链接正常工作,例如,如果它有一个target="_blank“指令。
发布于 2011-07-26 04:34:48
function show_confirm(url){
var r=confirm("Are you sure you want to delete?");
if (r==true){
location.top.href = url;
}
}
$('.delete').click(function(event) {
event.preventDefault();
show_confirm($(this).attr('href'));
});
如果你想使用ajax,你可以用$.get(url);
代替location.top.href = url;
https://stackoverflow.com/questions/6821968
复制相似问题