bootstrap 确认中的 PreventDefault 不起作用
PreventDefault in bootstrap confirmation doesn't work
当我使用这段代码时:
$(function() {
$('#enableBtn{!! $zone->id !!}').on('confirmed.bs.confirmation', '', function () {
e.preventDefault();
// Do Ajax Here
var ZoneId = 1;
var value = 1;
var published_at = $('#published_at').val();
$.ajax({
type: "POST",
url: host + '/zone/toggleEnable',
data: {id: title, value: body},
success: function( msg ) {
alert('success');
//$("#ajaxResponse").append("<div>"+msg+"</div>");
}
});
});
});
然后我在确认弹出窗口中单击“是”,e.preventDefault() 不起作用并且整个页面重新加载,这不是我想要的行为,因为我需要调用 ajax。为什么会这样?我该如何解决这个问题?
您的回调函数缺少其事件参数。尝试替换这个:
$('#enableBtn{!! $zone->id !!}').on('confirmed.bs.confirmation', '', function () {
有了这个:
$('#enableBtn{!! $zone->id !!}').on('confirmed.bs.confirmation', '', function (e) {
请注意添加的 e 参数,您现在可以在下一行找到它:
e.preventDefault();
不知道我是怎么想出来的,但我能够在 bootstrap 确认初始化脚本中初始化我自己的确认自定义框。我用一个按钮替换了锚点,它起作用了:
$('[data-toggle=confirmation]').confirmation({
rootSelector: '[data-toggle=confirmation]',
btnOkClass: 'btn btn-sm btn-success',
btnCancelClass: 'btn btn-sm btn-danger',
template: '<div class="popover confirmation">' +
'<div class="arrow"></div>' +
'<h3 class="popover-title"></h3>' +
'<div class="popover-content">' +
'<p class="confirmation-content"></p>' +
'<div class="confirmation-buttons text-center">' +
'<div class="btn-group">' +
'<button class="btn" data-apply="confirmation"></button>' +
'<a href="#" class="btn" data-dismiss="confirmation"></a>' +
'</div>' +
'</div>' +
'</div>' +
'</div>'});
当我使用这段代码时:
$(function() {
$('#enableBtn{!! $zone->id !!}').on('confirmed.bs.confirmation', '', function () {
e.preventDefault();
// Do Ajax Here
var ZoneId = 1;
var value = 1;
var published_at = $('#published_at').val();
$.ajax({
type: "POST",
url: host + '/zone/toggleEnable',
data: {id: title, value: body},
success: function( msg ) {
alert('success');
//$("#ajaxResponse").append("<div>"+msg+"</div>");
}
});
});
});
然后我在确认弹出窗口中单击“是”,e.preventDefault() 不起作用并且整个页面重新加载,这不是我想要的行为,因为我需要调用 ajax。为什么会这样?我该如何解决这个问题?
您的回调函数缺少其事件参数。尝试替换这个:
$('#enableBtn{!! $zone->id !!}').on('confirmed.bs.confirmation', '', function () {
有了这个:
$('#enableBtn{!! $zone->id !!}').on('confirmed.bs.confirmation', '', function (e) {
请注意添加的 e 参数,您现在可以在下一行找到它:
e.preventDefault();
不知道我是怎么想出来的,但我能够在 bootstrap 确认初始化脚本中初始化我自己的确认自定义框。我用一个按钮替换了锚点,它起作用了:
$('[data-toggle=confirmation]').confirmation({
rootSelector: '[data-toggle=confirmation]',
btnOkClass: 'btn btn-sm btn-success',
btnCancelClass: 'btn btn-sm btn-danger',
template: '<div class="popover confirmation">' +
'<div class="arrow"></div>' +
'<h3 class="popover-title"></h3>' +
'<div class="popover-content">' +
'<p class="confirmation-content"></p>' +
'<div class="confirmation-buttons text-center">' +
'<div class="btn-group">' +
'<button class="btn" data-apply="confirmation"></button>' +
'<a href="#" class="btn" data-dismiss="confirmation"></a>' +
'</div>' +
'</div>' +
'</div>' +
'</div>'});