当用户点击 删除此帖子 时会弹出一个模式,询问用户是否确定。
如果OK,AJAX正常进行。但是如果用户点击取消,也会发生删除操作。
我在这个AJAX代码的几个部分尝试了return false
,但它完全阻止了AJAX请求。
我想在不使用额外插件(即对话框)的情况下完成正确的行为 - 任何人都有建议吗?谢谢!
AJAX
$('.posts_delete').live('click', function(e){
e.preventDefault();
var id = $(this).attr('id');
var last_seg = id.substr(id.lastIndexOf('_') + 1);
var link = 'chat/posts_delete/' + last_seg;
$.ajax({
url: link,
dataType: "html",
beforeSend: function(){
confirmDeletePost();
// return false;
},
success: function() {
$('#chat_thread').load('chat/posts_ajax/<?php echo $page_id; ?>');
$('#posts_form input').val('');
}
});
});
JS
function confirmDeletePost() {
return confirm("This post will be removed and you can't undo this action. Are you sure you want to delete?");
}
答案 0 :(得分:3)
检查此http://jsfiddle.net/jansian/wupmq/
希望它有所帮助。 :)
答案 1 :(得分:2)
如果用户取消,您需要返回confirm
的结果 - 返回false
。
如果用户首先单击“确定”,则使用if
仅发送请求会更简单。
答案 2 :(得分:1)
这应该有用(注意!未经测试):
$('.posts_delete').live('click', function(e){
e.preventDefault();
if (confirm("This post will be removed and you can't undo this action. Are you sure you want to delete?")){
var id = $(this).attr('id');
var last_seg = id.substr(id.lastIndexOf('_') + 1);
var link = 'chat/posts_delete/' + last_seg;
$.ajax({
url: link,
dataType: "html",
beforeSend: function(){
confirmDeletePost();
// return false;
},
success: function() {
$('#chat_thread').load('chat/posts_ajax/<?php echo $page_id; ?>');
$('#posts_form input').val('');
}
});
}
});