【问题标题】:ConfirmDialog() in JQuery on button click closing automatically按钮单击时 JQuery 中的 ConfirmDialog() 自动关闭
【发布时间】:2018-12-12 12:32:03
【问题描述】:

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

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()"/>

【问题讨论】:

  • 是的,我使用了OnConfirm(),但问题是在我点击是或否之前,对话框会自动关闭。
  • 否 这不是该链接的副本,这是不同的情况。
  • 我的错误。问题有些不清楚。您可以发布您的 onConfirm() 功能代码吗?谢谢。

标签: javascript jquery asp.net vb.net confirm


【解决方案1】:

按钮语法似乎不对。而 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);

        }; 

【讨论】:

  • 充其量,这应该是一个评论,而不是一个答案。
  • 别担心,当我解决他的问题时,这个答案会更新为更合适的内容。这只是我最初联系和收集更多信息以帮助澄清情况并希望找到解决方案的方式。如果其他人先解决了,我当然会删除这个答案。
  • 不应使用答案来收集更多信息。这就是 cmets 的用途。
  • 问题的范围和所需的信息交换量使得 cmets 功能对于这种特殊情况来说过于局限和繁琐。别担心,一切都会好的,我知道我在做什么。我已经使用了很长时间了,我只好创建这个新帐户,因为我丢失了我的登录信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
  • 2014-07-28
  • 2021-10-03
相关资源
最近更新 更多