1

我有一种情况,我需要在同一个 ASP 按钮上同时弹出警报和确认弹出窗口。我需要提醒验证,一旦用户输入所有必要的信息,我需要确认弹出来发送电子邮件或提交另一个条目。

我已经在使用 jQuery 对话框弹出来进行警报和确认,但不知道如何将它们组合在同一个按钮上。

//我的确认码

<script type="text/javascript">
    jQuery(function() {
        var dlg = jQuery("#dialog").dialog({

            draggable: false,
            autoOpen: false,
            minHeight: 10,
            minwidth: 10,
            zIndex: 99999

        });
        $('#<%=btnStart.ClientID%>').click(function() {
            $('#dialog').dialog('open');
        });
        $(".ui-dialog-titlebar").hide();
        $(".ui-dialog-titlebar-close").hide();
       dlg.parent().appendTo(jQuery("form:first"));
    });
<asp:Button  id="btnStart" runat="server" Text="btnStart"  onclick="btnStart_Click" />
<div id="dialog" style="text-align: center; display: none;font-size:14px;">
    <table>
        <tr>
            <td colspan="2">
                <asp:Label Text="Do you want to exclude these dates?" runat="server" ID="lbl"></asp:Label>
            </td>
        </tr>
        <tr>
            <td>
                <asp:Button ID="btnOk" runat="server" Text="Yes" OnClick="btnOK_Click" Style="width: 60px;" />
            </td>
            <td>
                <asp:Button ID="Button1" runat="server" Text="No" OnClick="btnCancel1_Click" Width="60px" />
            </td>
        </tr>
    </table>
</div>

//我的警报弹出窗口

    $(document).ready(function() {
   $('#<%=btnStart.ClientID%>').click(function() {
        alert("Correct it!");
    });

    });

这是.net 网络应用程序。

4

2 回答 2

1

不确定您对使用 jQuery .click 事件的态度如何,但您可以使用 onClientClick 属性直接在按钮上调用多个函数,如下所示:

<asp:button runat="server" text="submit" OnClientClick="alert('fn1');alert('fn2');" onclick="ServerSubmitLogicMethod" />

编辑 1:澄清一下,您可以直接在事件中运行脚本,甚至无需定义匿名函数(在 onclick 事件中隐式创建)你可以这样做:

<asp:button runat="server" text="submit" OnClientClick="if(formIsValid()){alert('confirmed!');}" onclick="ServerSubmitLogicMethod" />

在哪里

function formIsValid()
{
//some validation logic ultimately leading to a Boolean return//
return true;
}

也就是说,没有理由不能像现在这样将验证警报与代码中的确认逻辑一起放入 validates() 函数调用中,如下所示:

    jQuery(function() {
        var dlg = jQuery("#dialog").dialog({

            draggable: false,
            autoOpen: false,
            minHeight: 10,
            minwidth: 10,
            zIndex: 99999

        });
        $('#<%=btnStart.ClientID%>').click(function() {
            if(validates())
            {           
              $('#dialog').dialog('open');
            }
        });
        $(".ui-dialog-titlebar").hide();
        $(".ui-dialog-titlebar-close").hide();
       dlg.parent().appendTo(jQuery("form:first"));
    });

function validates(){
//...validation logic...//
alert("Correct it!");
return false;
}
于 2012-08-24T20:02:18.917 回答
0

如果您使用 jqueryUI 中的 Dialog 插件,您可以使用 close 事件:

从他们的网站:

关闭事件

该事件在对话框关闭时触发。

代码示例

提供一个回调函数来处理关闭事件作为初始化选项。

$( ".selector" ).dialog({
   close: function(event, ui) { ... }
});
//Bind to the close event by type: dialogclose.
$( ".selector" ).bind( "dialogclose", function(event, ui) {
  ...
});

这将在弹出窗口关闭后触发。

编辑:你不会在同一个按钮中有这个,但首先你打开一个对话框,然后在关闭这个对话框时调用另一个,所以它作为一个回调函数工作。

于 2012-08-24T18:51:54.147 回答