jquery UI对话框的返回值

发布于 2024-12-25 03:47:04 字数 1207 浏览 0 评论 0原文

您可能会在许多帖子中找到解决方案(帖子 1 , Post2 ),但他们的解决方案对我不起作用。

这是我写的普通jquery对话框。

$("#dialog").dialog({
        autoOpen:false,
        buttons:{
            "ok":function(){                                        
                        $(this).dialog("close"); 
                        return true;                                                                    
                    },
            "cancel":function(){                          
                        $(this).dialog("close");     return false;                  
                }
            }   
});

我将使用代码打开对话框:

var returnVal=$("#dialog").dialog("open");

如果用户单击“取消”,我需要返回 false;如果用户单击“确定”,则返回 true

var returnVal=$("#dialog").dialog("open");

我需要 returnVal 返回 boolean 值(true/false),但它返回 javascript object

You may find solution over this in many posts(Post 1 , Post2 ), but their solution not working for me.

Here is the normal jquery dialog box written by me.

$("#dialog").dialog({
        autoOpen:false,
        buttons:{
            "ok":function(){                                        
                        $(this).dialog("close"); 
                        return true;                                                                    
                    },
            "cancel":function(){                          
                        $(this).dialog("close");     return false;                  
                }
            }   
});

I will open the dialogbox with code:

var returnVal=$("#dialog").dialog("open");

I need to return false,if user clicks 'cancel' and return true if user clicks 'ok'.

var returnVal=$("#dialog").dialog("open");

I NEED returnVal to return boolean value(true/false), but it returns javascript object.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

找个人就嫁了吧 2025-01-01 03:47:04

您无法从“确定”/“取消”函数返回某些内容,因为它们本质上是仅在单击按钮时才进行处理的事件处理程序。

使用单独的函数来处理结果:

$mydialog = $("#dialog").dialog({
    autoOpen: false,
    buttons: {
        "ok": function() {
            $(this).dialog("close");
            processResult(true);
        },
        "cancel": function() {
            $(this).dialog("close");
            processResult(false);
        }
    }
});

$mydialog.dialog("open");


function processResult(result) {
    alert(result);
}

工作示例:http://jsfiddle.net/nz2dH/

You cannot return something from the OK / cancel functions as they are essentially event handlers that are only processed upon the click of a button.

Use a separate function to process the result :

$mydialog = $("#dialog").dialog({
    autoOpen: false,
    buttons: {
        "ok": function() {
            $(this).dialog("close");
            processResult(true);
        },
        "cancel": function() {
            $(this).dialog("close");
            processResult(false);
        }
    }
});

$mydialog.dialog("open");


function processResult(result) {
    alert(result);
}

Working example : http://jsfiddle.net/nz2dH/

七秒鱼° 2025-01-01 03:47:04

我已经实现了带有自定义消息和回调函数的“是/否”确认对话框,如下所示。如果您想将同一个对话框用于各种目的,这非常有用。

<script type="text/javascript">
    // prepare dialog
    $(function () {
        $("#confirm-message-dialog").dialog({
            autoOpen: false,
            modal: true,
            closeOnEscape: false,
            buttons: {
                Yes: function () {
                    $(this).dialog("close");
                    $(this).data("callback")(true);
                },
                No: function () {
                    $(this).dialog("close");
                    $(this).data("callback")(false);
                }
            }
        });
    });

    // open dialog with message and callback function
    function confirmMessageDialog (message, callback) {
        $('#confirm-message-dialog-message').text(message);
        $('#confirm-message-dialog').data("callback", callback).dialog("open");
    };
</script>

<!-- The dialog content -->
<div id="confirm-message-dialog" title="Warning"> 
    <p id="confirm-message-dialog-message"></p>
</div>

希望这也对其他人有帮助:)

I have implement Yes/No confirmation dialog with custom message and callback function like this. This is useful, if you like to use the same dialog for various purposes.

<script type="text/javascript">
    // prepare dialog
    $(function () {
        $("#confirm-message-dialog").dialog({
            autoOpen: false,
            modal: true,
            closeOnEscape: false,
            buttons: {
                Yes: function () {
                    $(this).dialog("close");
                    $(this).data("callback")(true);
                },
                No: function () {
                    $(this).dialog("close");
                    $(this).data("callback")(false);
                }
            }
        });
    });

    // open dialog with message and callback function
    function confirmMessageDialog (message, callback) {
        $('#confirm-message-dialog-message').text(message);
        $('#confirm-message-dialog').data("callback", callback).dialog("open");
    };
</script>

<!-- The dialog content -->
<div id="confirm-message-dialog" title="Warning"> 
    <p id="confirm-message-dialog-message"></p>
</div>

Hope that this helps others as well :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文