是否可以将jQuery变量传递给bootbox.js确认框?
以下是代码:
bootbox.confirm({
message: 'Are you sure you want to remove [productName]?',
callback: function(result) {
console.log(result);
},
title: "You can also add a title",
});
其中" productName"是一个变量,如:
var productName = $('#product_name').val();
这样的事情可能吗?
更新:感谢下面的答案!
解决这个问题....如果我有这样的事情:
$('#product_name1 a.trash').click(function(event){
event.stopImmediatePropagation();
event.preventDefault();
var foo = $(this).parent().attr('id'); // #product_name1
alert(foo); // correct!
bootbox.confirm({
message: 'Are you sure you want to remove [productName]?',
callback: function(result) {
if (confirmed)
alert(foo); // undefined!
}
}
});
});
我如何重新定义"这个"在回调中? "富"返回undefined,因为它现在引用了bootbox。
答案 0 :(得分:2)
是的,你可以,你只需要将值与消息字符串连接起来:
var productName = $('#product_name').val();
bootbox.confirm({
message: 'Are you sure you want to remove'+productName,
callback: function(result) {
console.log(result);
},
title: "You can also add a title",
或更干净:
var productName = $('#product_name').val();
var Message = 'Are you sure you want to remove'+productName;
bootbox.confirm({
message: Message ,
callback: function(result) {
console.log(result);
},
title: "You can also add a title",
答案 1 :(得分:1)
如果你需要在回调函数中使用这个变量,你可以通过制作“全局”来传递它,但是在用户调用确认和开始执行回调之间的时间,其他一些脚本可以改变它(或反向),所以对于防止冲突需要创建一些具有设置方法的对象,获取变量和阻止机制,在set / get事件上锁定/解锁变量状态,并执行所有非异步事件。
var _this = this;
confirm({
title: "Menu discard",
message: 'Are you sure?',
callback: function(resolve) {
if(resolve) {
// _this is accessible
}
}
});