簡體   English   中英

返回jquery UI對話框的值

[英]Return value of jquery UI dialog Box

您可以在許多帖子( Post 1Post2 )中找到解決方案,但他們的解決方案對我不起作用。

這是我編寫的普通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

您無法從確定/取消功能返回任何內容,因為它們本質上是僅在單擊按鈕時處理的事件處理程序。

使用單獨的函數來處理結果:

$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/

我已經實現了Yes / No確認對話框,其中包含自定義消息和回調函數。 如果您想為各種目的使用相同的對話框,這很有用。

<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>

希望這也有助於其他人:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM