从jquery模态确认或模态对话框返回值

时间:2013-06-06 08:28:35

标签: javascript modal-dialog jquery-dialog

我有一个像这样的javascript函数:

使用Javascript:

function dailog_box(){
    $( "#dialog-confirm" ).dialog({
        resizable: false,
        modal: true,
        buttons: {
            Ok: function() {
            $( this ).dialog( "close" );
            return true;   //i want to return value here
        },
            Cancel: function() {
            $( this ).dialog( "close" );
            return false;  //i want to return value here
            }
        }
    });
}

HTML

<div id="dialog-confirm" title="Prescriptions" style="display:none;">
    <p>
        <span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>
        These items will be permanently deleted and cannot be recovered. Are you sure?<br/>
        <input type="checkbox" name="check_od" id="check_od"/> The prescription is correct;
    </p>
</div>

调用dialog_box()函数后,我希望变量标志中返回的值,我确实喜欢这样:

的Javascript

 var flag = dailog_box();
 alert(flag);

但结果未定义。并且在我点击任何按钮之前发生警报。那么在模型按钮

中点击任何按钮后,我该怎么做才能得到这个值?

有关详细信息,请查看http://jsfiddle.net/8e388/13/ 我希望提醒返回的值。 顺便说一句,我是jsfiddle的新手。

2 个答案:

答案 0 :(得分:2)

你无法完全按照自己的意愿拥有它。你可以用另一种方式做到这一点:

查看我的fiddle

基本上我有一个全局变量feedback

var feedback = false;

在对话框的okcancel上,我设置了适当的值。 IMO为您的代码增加了一些灵活性

答案 1 :(得分:1)

我建议您使用callback

buttons: {
            Ok: function() {
            callbackSuccess();
            $( this ).dialog( "close" );
        },
            Cancel: function() {
            callbackCancel();
            $( this ).dialog( "close" );
            }
        }

callbackSuccesscallbackCancel - 是简单的功能

如果为ConfirmDialog创建帮助器,则更容易传递回调