asp按钮在jquery模式对话框中单击不触发

asp按钮在jquery模式对话框中单击不触发,jquery,asp.net,modal-dialog,Jquery,Asp.net,Modal Dialog,请尝试以下代码: function ShowPopup() { var dlg = $("#dialog").dialog({ title: "Test", width: 500, buttons: { Close: function () { $(this).dialog('close')


请尝试以下代码:

function ShowPopup() {
            var dlg = $("#dialog").dialog({
                title: "Test",
                width: 500,
                buttons: {
                    Close: function () {
                        $(this).dialog('close');
                    }
                },
                modal: true
            });
            dlg.parent().appendTo($("form:first"));
        }

由于回发,弹出窗口将丢失。为了在回发时再次显示弹出窗口,我们可以维护一个隐藏字段

<head runat="server">

    <title></title>
    <script type="text/javascript" src="content/js/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
    <script type="text/javascript">
$(function () {
            $("[id*=btnShowPopup]").click(function () {
                ShowPopup();
                return false;
            });

            $('#Button1').click(function () {
                $('#hdnPostback').val(true);
            });

            if ($('#hdnPostback').val() == 'true') {
                $('#hdnPostback').val(false);
                ShowPopup();
            }
        });

        function ShowPopup() {
            var dlg = $("#dialog").dialog({
                title: "Test",
                width: 500,
                buttons: {
                    Close: function () {
                        $(this).dialog('close');
                    }
                },
                modal: true
            });
            dlg.parent().appendTo($("form:first"));
        }
    </script>
</head>
<body >
    <form id="form1" runat="server">
    <asp:Button ID="btnShowPopup" runat="server" Text="Show popup" />
    <div id="dialog" style="display: none">
        <table>
            <tr>
                <td>
                    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
                </td>
            </tr> 
            <tr>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
                </td>
                <td>
                    <asp:Label ID="Label1" runat="server"></asp:Label>
                </td>
            </tr>
        </table>
        <asp:HiddenField runat="server" ID="hdnPostback" Value="false" />
    </div>
    </form>
</body>

$(函数(){
$(“[id*=btnShowPopup]”。单击(函数(){
ShowPopup();
返回false;
});
$('#按钮1')。单击(函数(){
$('hdnPostback').val(true);
});
if($('#hdnPostback').val()=='true'){
$('hdnPostback').val(false);
ShowPopup();
}
});
函数ShowPopup(){
var dlg=$(“#dialog”).dialog({
标题:“测试”,
宽度:500,
按钮:{
关闭:函数(){
$(this.dialog('close');
}
},
莫代尔:对
});
dlg.parent().appendTo($(“form:first”);
}

对于母版页-动态生成客户端id(因此隐藏控件的id不再是hdnPostback)

基于此,需要对代码进行如下修改:

$(function () {
            $("[id*=btnShowPopup]").click(function () {
                ShowPopup();
                return false;
            });

            var hdnPostbackID = '<%= hdnPostback.ClientID %>'

            $('#Button1').click(function tt() {
                $('#' + hdnPostbackID).val(true);
            });

            if ($('#' + hdnPostbackID).val() == 'true') {
                $('#' + hdnPostbackID).val(false);
                ShowPopup();
            }
        });


        function ShowPopup() {
            var dlg = $("#dialog").dialog({
                title: "Test",
                width: 500,
                buttons: {
                    Close: function () {
                        $(this).dialog('close');
                    }
                },
                modal: true
            });
            dlg.parent().appendTo($("form:first"));
        }
$(函数(){
$(“[id*=btnShowPopup]”。单击(函数(){
ShowPopup();
返回false;
});
var hdnPostbackID=“”
$('#按钮1')。单击(函数tt(){
$('#'+hdnPostbackID).val(true);
});
if($('#'+hdnPostbackID).val()=='true'){
$('#'+hdnPostbackID).val(false);
ShowPopup();
}
});
函数ShowPopup(){
var dlg=$(“#dialog”).dialog({
标题:“测试”,
宽度:500,
按钮:{
关闭:函数(){
$(this.dialog('close');
}
},
莫代尔:对
});
dlg.parent().appendTo($(“form:first”);
}

请尝试以下代码:

function ShowPopup() {
            var dlg = $("#dialog").dialog({
                title: "Test",
                width: 500,
                buttons: {
                    Close: function () {
                        $(this).dialog('close');
                    }
                },
                modal: true
            });
            dlg.parent().appendTo($("form:first"));
        }

由于回发,弹出窗口将丢失。为了在回发时再次显示弹出窗口,我们可以维护一个隐藏字段

<head runat="server">

    <title></title>
    <script type="text/javascript" src="content/js/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
    <script type="text/javascript">
$(function () {
            $("[id*=btnShowPopup]").click(function () {
                ShowPopup();
                return false;
            });

            $('#Button1').click(function () {
                $('#hdnPostback').val(true);
            });

            if ($('#hdnPostback').val() == 'true') {
                $('#hdnPostback').val(false);
                ShowPopup();
            }
        });

        function ShowPopup() {
            var dlg = $("#dialog").dialog({
                title: "Test",
                width: 500,
                buttons: {
                    Close: function () {
                        $(this).dialog('close');
                    }
                },
                modal: true
            });
            dlg.parent().appendTo($("form:first"));
        }
    </script>
</head>
<body >
    <form id="form1" runat="server">
    <asp:Button ID="btnShowPopup" runat="server" Text="Show popup" />
    <div id="dialog" style="display: none">
        <table>
            <tr>
                <td>
                    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
                </td>
            </tr> 
            <tr>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
                </td>
                <td>
                    <asp:Label ID="Label1" runat="server"></asp:Label>
                </td>
            </tr>
        </table>
        <asp:HiddenField runat="server" ID="hdnPostback" Value="false" />
    </div>
    </form>
</body>

$(函数(){
$(“[id*=btnShowPopup]”。单击(函数(){
ShowPopup();
返回false;
});
$('#按钮1')。单击(函数(){
$('hdnPostback').val(true);
});
if($('#hdnPostback').val()=='true'){
$('hdnPostback').val(false);
ShowPopup();
}
});
函数ShowPopup(){
var dlg=$(“#dialog”).dialog({
标题:“测试”,
宽度:500,
按钮:{
关闭:函数(){
$(this.dialog('close');
}
},
莫代尔:对
});
dlg.parent().appendTo($(“form:first”);
}

对于母版页-动态生成客户端id(因此隐藏控件的id不再是hdnPostback)

基于此,需要对代码进行如下修改:

$(function () {
            $("[id*=btnShowPopup]").click(function () {
                ShowPopup();
                return false;
            });

            var hdnPostbackID = '<%= hdnPostback.ClientID %>'

            $('#Button1').click(function tt() {
                $('#' + hdnPostbackID).val(true);
            });

            if ($('#' + hdnPostbackID).val() == 'true') {
                $('#' + hdnPostbackID).val(false);
                ShowPopup();
            }
        });


        function ShowPopup() {
            var dlg = $("#dialog").dialog({
                title: "Test",
                width: 500,
                buttons: {
                    Close: function () {
                        $(this).dialog('close');
                    }
                },
                modal: true
            });
            dlg.parent().appendTo($("form:first"));
        }
$(函数(){
$(“[id*=btnShowPopup]”。单击(函数(){
ShowPopup();
返回false;
});
var hdnPostbackID=“”
$('#按钮1')。单击(函数tt(){
$('#'+hdnPostbackID).val(true);
});
if($('#'+hdnPostbackID).val()=='true'){
$('#'+hdnPostbackID).val(false);
ShowPopup();
}
});
函数ShowPopup(){
var dlg=$(“#dialog”).dialog({
标题:“测试”,
宽度:500,
按钮:{
关闭:函数(){
$(this.dialog('close');
}
},
莫代尔:对
});
dlg.parent().appendTo($(“form:first”);
}



您的页面中有多少个相同类型的按钮?目前我的页面上有两个按钮。一个用于显示模式对话框,另一个用于提交值。请单击“显示”按钮funtion@vijayP这是我的onclick函数[Label1.Text=TextBox1.Text;]将textbox1值分配给label1。我是否需要编写客户端脚本?页面中有多少相同类型的按钮可能重复?目前我有两个