Jquery确认窗口无法处理取消按钮单击

时间:2011-08-09 04:54:21

标签: javascript jquery asp.net html dialog

我在javscript中有以下代码打开一个带有yes和no选项的确认对话框,但是我在打开确认对话框时遇到了一些问题。

function ConfirmDialog(obj, title, dialogText) {
    if (!dialogConfirmed) {
        $('body').append(String.Format("<div id='dialog' title='{0}'><p>{1}</p></div>",
                    title, dialogText));

        $('#dialog').dialog
                ({
                    height: 150,
                    modal: true,
                    resizable: false,
                    draggable: false,

                    close: function (event, ui) { $('body').find('#dialog').remove(); },
                    buttons:
                    {
                        'Yes': function () {
                            $(this).dialog('close');
                            dialogConfirmed = true;
                            GetRadWindow().close();
                            if (obj) obj.click();
                        },
                        'No': function () {
                            $(this).dialog('close');
                        }
                    }
                });
    }

    return dialogConfirmed;
}

这是我在aspx页面上的代码

 <script type="text/javascript" src="Scripts/jquery-1.4.2.min.js"></script>
                <script type="text/javascript" src="Scripts/jquery-ui-1.8.2.custom.min.js"></script>
                 <script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>

            <input id="Button2" type="button" value="Cancel" onclick="return ConfirmDialog(this, 'Confirmation', 'Are you sure want to close the window?');" />

2 个答案:

答案 0 :(得分:2)

可能是您在页面1.4.1和1.4.2中包含两个版本的jquery吗?请更改并查看。

还有javascript中的String.Format?是你写的一些方法吗?请改用sprintf

答案 1 :(得分:1)

此代码到达第3行并在JavaScript中看到String.Format并停止执行。

jQuery / JavaScript中有 no String.Format。如果你特别关注using String.Format in JavaScript,请自己创建一个。

String.prototype.format = function() {
    var formatted = this;
    for (var i = 0; i < arguments.length; i++) {
        var regexp = new RegExp('\\{'+i+'\\}', 'gi');
        formatted = formatted.replace(regexp, arguments[i]);
    }
    return formatted;
};

并像

一样使用它
$('body').append("<div id='dialog' title='{0}'><p>{1}</p></div>".format(title, dialogText));