我不太了解如何实现bootbox.js来替换我的标准javascript确认警报弹出窗口并需要一些帮助。我已经阅读了一些主题和文档,但是不能完全正确。
我目前有这个按钮/链接,用于保存模板中的记录编号:
<a href="{% url overseas_experience_details_duplicate overseas_experience_detail.id %}" onclick="if(confirmDuplicate())showProgressAnimation();else return false;">{% trans "Duplicate" %}</a>
这会调用我想用bootbox.js替换的当前js函数:
function confirmDuplicate() {
return confirm("Are you sure?");
}
如果选中“确定”选项,则会复制记录(显示重复记录时显示进度动画)。如果选择了CANCEL选项,则不会发生任何事情。
我已经使用以下代码来实现bootbox警报,但我不知道如何返回启动框OK确认,然后将复制记录。
bootbox.js
function confirmDuplicate() {
bootbox.confirm("Are you sure?", function(result) {
if (result == true) {
// not too sure what to insert here to return the bootbox confirm();
}
});
一些有效的建议将不胜感激
更新问题
我现在已经弹出了bootbox确认弹出,但我无法返回“true”或“false”确认结果。这是我的新代码:
function confirmDuplicate() {
bootbox.confirm({
callback: function(result) {
if (result) {
return result;
}
}
}
}
我很沮丧,我无法返回结果来复制记录。
任何帮助都会很棒。
答案 0 :(得分:3)
尝试这样的事情:
<a href="whatever" onclick="return myConfirm(this.href)">....
myConfirm = function(url) {
bootbox.confirm("sure?", function(okay) {
if(okay)
location.href = url;
});
return false;
}
您无法立即获得bootbox.confirm
结果,因此从处理程序返回false
以防止链接被跟踪并在回调函数中执行所需的操作。
答案 1 :(得分:0)
继续我对您的问题的评论,这里是一个非阻碍性的jquery版本:
$('.your-link-class').on('click', function(e) {
e.preventDefault(); //this would be equivalent to the return false in your code
var self = this;
bootbox.confirm("Are you sure?", function(result) {
if (result) {
// Here you have access to the jquery object of your link with $(self)
// and you can do stuff like, for example:
var clone = $(self).clone();
clone.insertAfter($(self));
}
});
});
和一个演示(不是:在演示中我使用传统提示而不是因为我没有加载bootbox源码):
答案 2 :(得分:0)
function isConfirm(message, elem) {
bootbox.confirm(message, function (result) {
if (result)
window.location.href = elem;
});
return false;
}
<a href='@Url.Action("DeleteAction", "Admin", new { id = Model.ActionObj.id })' onclick="javascript: return isConfrm('Are you sure you want to delete this action?', this)"> Delete </a>
将此用于功能:
function isConfirm(message, elem) {
bootbox.confirm(message, function (result) {
if (result)
window.location.href = elem;
});
return false;
}