【问题标题】:get result for jquery confirmation to return in function获取 jquery 确认的结果以在函数中返回
【发布时间】:2012-07-13 04:58:39
【问题描述】:

我需要从 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();
            }
        }); 
    });

【问题讨论】:

  • 我不明白你的问题?从 comfirn 转换为 jquery ui 对话框需要什么?

标签: javascript jquery jquery-ui jquery-ui-dialog


【解决方案1】:

你已经正确地开始了,除了你不能期望有一个返回值。

原生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
            }   

【讨论】:

  • 是的,我知道 JS 是异步的,我的问题是我正在使用的插件调用函数 menuItemClick 然后提交或阻止提交表单。不知道如何在不复制该代码的情况下使用它。 clickReturn = opts.menuItemClick.call(this); if(clickReturn) {/* 做某事 */}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-27
  • 2017-05-05
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多