我刚刚开始使用bootstrap,我收到一个javascript错误,我不知道如何管理。
我在第一列中有一个带有复选框的数据表。选择一些复选框后,您可以单击两个按钮,打开一个带有不同消息的模式以接受或取消。但如果没有勾选复选框,我会显示一个信息提示(也是引导程序),我需要“关闭”模态。
这是 js代码:
$('#actionsModal').on('show.bs.modal', function(e) {
var action = $(e.relatedTarget).data('id');
var total = $('input[id^="checkboxRol"]:checked').length;
var message = "", object = "", confirmation = "";
if(total == 0){
$('.alert-info').show();
// -----------------------------------------------------
// this is the line giving the error!!!
$('#actionsModal').modal("toggle");
// -----------------------------------------------------
}
else if(total > 1){
message = "Va a " + action + " los " + total + " objetos seleccionados:";
confirmation = "¿Desea realizar esta operación?";
}
else{
message = "Va a " + action + " el objeto:";
object = "-obtener nombre-<br><br>";
confirmation = "¿Desea realizar esta operación?";
}
$(e.currentTarget).find('span[id="message"]').html(message);
$(e.currentTarget).find('span[id="object"]').html(object);
$(e.currentTarget).find('span[id="confirmation"]').html(confirmation);
});
js错误是:未捕获RangeError:超出最大调用堆栈大小
有什么想法吗?也许我可以使用其他类型的引导实体,只使用模态来处理简单按钮或链接点击。
提前致谢!
答案 0 :(得分:1)
如果你想关闭模态使用
$('#actionsModal').modal("hide");
而不是切换。我不确定它是否对你的情况有帮助,但它可以防止对show.bs.modal事件的不必要的无限递归(这是你的问题)
答案 1 :(得分:1)
解决!
最后,只需要用'shown.bs.modal'事件替换'show.bs.modal'事件
现在行:
$('#actionsModal').modal("toggle");
不会创建无限通话。
谢谢@JesúsQuintana