带有asp:超链接的jquery对话框表单

时间:2012-12-27 10:00:11

标签: asp.net jquery-ui dialog

我在使用asp.net表单实现JQuery对话框时遇到了问题。当我点击#hlChangePassword时没有任何反应。这是我的代码:

<script type="text/javascript">

    jQuery(document).ready(function () {
        jQuery('#hlChangePassword').click(function () {
            var dlg = jQuery('div#ChangePass').dialog({
                width: 500,
                height: 500,
                modal: true,
                buttons: {},
                open: function (event, ui) {
                    $(".ui-dialog-titlebar-close").hide();
                }
            });
            dlg.parent().appendTo(jQuery("form:first"));
        });
    });

</script>

HTML

<asp:HyperLink ID="hlChangePassword" 
runat="server" NavigateUrl="#">Change Password</asp:HyperLink>

<div id="ChangePass" style="display:none;">
//The content
</div>

我不知道是什么问题。请帮帮我。

2 个答案:

答案 0 :(得分:1)

用户event.preventDefault();防止帖子回复如下

 jQuery(document).ready(function () {
    jQuery('#hlChangePassword').click(function (event) {
        var dlg = jQuery('div#ChangePass').dialog({
            width: 500,
            height: 500,
            modal: true,
            buttons: {},
            open: function (event, ui) {
                $(".ui-dialog-titlebar-close").hide();
            }
        });
        dlg.parent().appendTo(jQuery("form:first"));
        event.preventDefault();

    });
});

由于hlChangePassword是服务器控件,因此它将回发。要克服这个问题,你应该使用event.preventDefault 此外,您正在使用id选择器,该选择器可以在运行时由于母版页或用户控件而更改。因此,如果您使用asp.net 4.0或更高版本,请按如下方式使用服务器ID或静态ID作为链接,如下所示

ClientIDMode="Static"


<asp:HyperLink ID="hlChangePassword"  ClientIDMode="Static"
 runat="server" NavigateUrl="#">Change Password</asp:HyperLink>

答案 1 :(得分:0)

...宾果
    script src =“http://code.jquery.com/ui/1.9.2/jquery-ui.js”&gt; 添加以上行,没有ui.js就无法工作。