首页 > 解决方案 > 按钮单击时 JQuery 中的 ConfirmDialog() 自动关闭

问题描述

我有一个被点击事件调用的ConfirmDialog()函数。它工作正常,但是当我单击 时,会自动关闭对话框而无需用户单击。我用了:JQueryasp:buttonbuttonConfirmDialog()

function ConfirmDialog() {

                $('<div></div>').appendTo('body')
    .html('<div><h4>' + 'Do you wanto to see previous data' + '?</h4></div>')
    .dialog({
        modal: true, title: 'Delete message', zIndex: 10000, autoOpen: true,
        width: 'auto', resizable: false,
        buttons: {
            Yes: function () {
                //                $(obj).removeAttr('onclick');
                //                $(obj).parents('.Parent').remove();

                $('body').append('<h1>Confirm Dialog Result: <i>Yes</i></h1>');
                $(this).dialog("close");
                confirm_value.value = "Yes";
            },
            No: function () {
                $('body').append('<h1>Confirm Dialog Result: <i>No</i></h1>');
                $(this).dialog("close");
                confirm_value.value = "No";
            }
        },
        close: function (event, ui) {
            $(this).remove();
        }
    });
                document.forms[0].appendChild(confirm_value);
            });

我得到那个页面刷新正在关闭它。然后我尝试使用 $(document).ready() 来停止自动关闭,但它不起作用:

function ConfirmDialog() {
            $(document).ready(function () {

                $('<div></div>').appendTo('body')
    .html('<div><h4>' + 'Do you wanto to see previous data' + '?</h4></div>')
    .dialog({
        modal: true, title: 'Delete message', zIndex: 10000, autoOpen: true,
        width: 'auto', resizable: false,
        buttons: {
            Yes: function () {
                //                $(obj).removeAttr('onclick');
                //                $(obj).parents('.Parent').remove();

                $('body').append('<h1>Confirm Dialog Result: <i>Yes</i></h1>');
                $(this).dialog("close");
                confirm_value.value = "Yes";
            },
            No: function () {
                $('body').append('<h1>Confirm Dialog Result: <i>No</i></h1>');
                $(this).dialog("close");
                confirm_value.value = "No";
            }
        },
        close: function (event, ui) {
            $(this).remove();
        }
    });
                document.forms[0].appendChild(confirm_value);
            });
        }; 

这是我的按钮:

<asp:Button ID="btnConfrm" runat="server" Text="View" ForeColor="Black" Width="80px"
                        CssClass="button" Height="30px" ValidationGroup="btn" OnClick="OnConfirm" OnClientClick="ConfirmDialog()"/>

标签: javascriptjqueryasp.netvb.netconfirm

解决方案


按钮语法似乎关闭。而 document.ready 并没有帮助你把它放在哪里。

您可以发布 onConfirm 代码(c#)吗?

如果你试试这个会发生什么?

function ConfirmDialog() {

                $('<div></div>').appendTo('body')
    .html('<div><h4>' + 'Do you wanto to see previous data' + '?</h4></div>')
    .dialog({
        modal: true, title: 'Delete message', zIndex: 10000, autoOpen: true,
        width: 'auto', resizable: false,
        buttons: [{
            Yes: function () {
                //                $(obj).removeAttr('onclick');
                //                $(obj).parents('.Parent').remove();

                $('body').append('<h1>Confirm Dialog Result: <i>Yes</i></h1>');
                $(this).dialog("close");
                confirm_value.value = "Yes";
            },
            No: function () {
                $('body').append('<h1>Confirm Dialog Result: <i>No</i></h1>');
                $(this).dialog("close");
                confirm_value.value = "No";
            }
        }],
        close: function (event, ui) {
            $(this).remove();
        }
    });
                document.forms[0].appendChild(confirm_value);

        }; 

推荐阅读