获取jquery确认在函数中返回的结果

get result for jquery confirmation to return in function

本文关键字:返回 结果 函数 jquery 确认 获取      更新时间:2023-09-26

我需要从javascript confirm转换为使用jquery ui确认对话框。问题是,我需要在哪里打电话并打开确认对话框——我需要根据用户单击的按钮返回真/假(确定/取消)。我知道javascript是异步的,但我被如何做到这一点所困扰?有人能给我指正确的方向吗?

    $(document).ready(function() {
        $('#dialog:ui-dialog').dialog('destroy');
        $('#confirm-delete-quote').dialog({
            autoOpen: false,
            modal: true,
            buttons: {
                OK: function() {
                    $(this).dialog('close');
                    callback(true);
                },  
                Cancel: function() {
                    $(this).dialog('close');
                    callback(false);
                }   
            }   
        }); 
        $('div.multiRowCheckboxMenu').checkboxMenu({
            menuItemClick: function(text, count) {
                $('#confirm-delete-quote').dialog('open');
//                return confirm('Are you sure you want to ' + text + ' the selected ' + count + ' quote(s)?');
// HOW DO I RETURN WHAT THE USER CLICKED IN THE DIALOG HERE?
                return callback();
            }
        }); 
    });

除了不能期望返回值之外,您已经正确地开始了。

本机confirm()是一个阻塞脚本。也就是说,执行线程等待用户的输入。这就是为什么你可以返回一个值。

但是,在使用自定义对话框时,需要将要对返回值执行的任何操作的代码移动到OkCancel的回调中。

     buttons: {
            OK: function() {
                $(this).dialog('close');
                callback(true);
                //You know user clicked true, so do something here itself
            },  
            Cancel: function() {
                $(this).dialog('close');
                callback(false);
                //Similarly here
            }