我有一个表,其中每一行都有一个带有此表单的删除按钮
<form id="tableDelete_1">
<input type="hidden" name="tipo" value="delete" />
<input type="submit" name="send" value="Delete" class="btn btn-danger btn-xs" onClick="return confirm(`Are you sure?`)" />
</form>
<form id="tableDelete_2">
<input type="hidden" name="tipo" value="delete" />
<input type="submit" name="send" value="Delete" class="btn btn-danger btn-xs" onClick="return confirm(`Are you sure?`)" />
</form>
然后在页面底部
$(document).on('submit', '[id^=tableDelete_]' , function() {
return callAjax( $(this).serialize() );
});
function callAjax( data ) {
$.ajax({
type : 'POST',
url : 'call/page.php',
data : data,
success : function(data) { ... },
error: function(data) { ... }
});
return false;
};
现在我要删除经典
onClick="return confirm(`Are you sure?`)"
并使用sweetalert ...... 我刚刚开始时遇到问题,我只想显示带有此功能的弹出窗口
$(document).on('submit', '[id^=tableDelete_]' , function() {
swal({
title: "Are you sure?",
text: "You will not be able to recover this imaginary file!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, delete it!",
closeOnConfirm: false
},
function(){
swal("Deleted!", "Your imaginary file has been deleted.", "success");
});
};
弹出窗口仅显示一秒钟,然后重新加载页面,因为我认为表单已提交...
请给我帮助
答案 0 :(得分:2)
如果我读得正确,我想你正在寻找这样的东西?
$(document).on('submit', '[id^=tableDelete_]', function (e) {
e.preventDefault();
var data = $(this).serialize();
swal({
title: "Are you sure?",
text: "You will not be able to recover this imaginary file!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, delete it!",
cancelButtonText: "No, cancel plx!",
closeOnConfirm: false,
closeOnCancel: false
},
function (isConfirm) {
if (isConfirm) {
$.ajax({
type: 'POST',
url: 'call/page.php',
data: data,
success: function (data) {
swal("Deleted!", "Your imaginary file has been deleted.", "success");
},
error: function (data) {
swal("NOT Deleted!", "Something blew up.", "error");
}
});
} else {
swal("Cancelled", "Your imaginary file is safe :)", "error");
}
});
return false;
});
答案 1 :(得分:1)
SweetAlert使用承诺进行确认回调:
swal({
title: "Confirm?",
text: "Are you sure?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Confirm",
cancelButtonText: "Back"
}
).then(
function (isConfirm) {
if (isConfirm) {
console.log('CONFIRMED');
}
},
function() {
console.log('BACK');
}
);
答案 2 :(得分:0)
$(document).on('submit', '[id^=tableDelete_]' , function(e) {
e.preventDefault();
//do your popup stuff
return false
});
您需要阻止在事件(作为e传递)发生时发生的默认事件。