模态引导用户确认
Modal Bootstrap User Confirmation
如何创建一个等待用户确认是否真的想要删除数据的JQuery函数
我怎样才能做到这样呢?
function UserConfirmation()
{
ShowModal(); //"Global" Delete Confirmation Bootstrap Modal
//Now wait till the user decides whether or not he really wants to
//delete data(Button events or on Modal hide).
//On user reply:
if(UserReplied == 'Delete')
{}
else
{}
}
编辑:这是Layout中Modal的html代码。这个ModalDelete可以在需要的时候通过ShowModal()函数调用。
<!-- Delete Data Confirmation Modal -->
<div class="modal fade" id="ModalDelete" role="dialog" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog modal-sm">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" id="btn-cancel" data-dismiss="modal">×</button>
<h4 class="modal-title">Confirm Delete</h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success" id="btn-cancel" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-danger btn-delete" id="btn-delete" data-dismiss="modal">Delete</button>
</div>
</div>
</div>
</div>
函数UserConfirmation在调用ShowModal()后监听模态事件,并根据用户的选择继续按下按钮或模态隐藏。
我认为这可以通过承诺或延期行动来实现。
好了,下面是我如何使用Jquery deferred的promise来解决这个问题:
-
这个函数监听,直到用户点击#ModalDelete中的按钮,并返回被点击按钮的id。
function ModalOptionChoosen() { var deferred = $.Deferred(); $('#ModalDelete button').on('click', function (e) { var $target = $(e.target); // Clicked button element $(this).closest('.modal').on('hidden.bs.modal', function () { //console.log($target); // Logged if the clicked button actually closed the modal var result = $target.attr('id'); deferred.resolve(result); }); }); return deferred.promise(); };
-
而另一个函数等待上面的承诺返回ModalOptionChoosen()
function ShowModalWaitForResult () { ShowModal(); var promise = ModalOptionChoosen(); promise.done(function (result) { console.log(result); // log the user selected value }); });
现在我可以引用ModalOptionChoosen函数的任何地方,如果需要
例如,您可以使用http://nakupanda.github.io/bootstrap3-dialog,然后在需要删除确认时使用如下内容:
BootstrapDialog.show({
title: 'Alert',
message: 'Are you sure you want to delete this ?',
buttons: [{
label: 'Yes',
cssClass: 'btn-danger',
action: function(dialog) {
dialog.close();
//your action
}
}, {
label: 'No',
action: function(dialog) {
dialog.close();
}
}]
});`
相关文章:
- 在离开Aurelia.js上的页面之前,我如何要求用户进行确认
- 弹出格式化的模式对话框,并在用户确认时转发
- Javascript-如果用户没有响应,则关闭确认消息
- Javascript确认,捕获用户选择
- 当用户单击关闭浏览器时(但不是当用户单击刷新按钮时),JavaScript会确认启动
- Javascript:离开单页应用程序时的用户确认
- 在cordova android中无需用户确认即可自动发送消息
- 重定向“如果确认了电子邮件,则将用户重定向到登录页”
- 如何在没有用户确认的情况下在iPhone的浏览器中启动音频
- 将用户均匀地重定向到 18 个不同的页面并确认提交
- 避免在用户单击超链接时留下页面确认
- 数据库更新的用户确认 - php + Ajax
- 向用户显示多条确认消息的最佳方式
- 在触发事件之前等待用户确认
- 如果用户不接受JS确认消息,如何检查上一个选定的单选按钮
- 如何在用户尝试刷新浏览器时获取“确认表单重新提交”
- 仅在用户确认后打开多个链接
- 通过jquery确认用户在页面关闭前提交表单
- 用于确认用户信息的Javascript脚本
- 用Parse确认用户邮件