1

我在用 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>

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

4

2 回答 2

1

用户事件.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>
于 2012-12-27T10:21:18.240 回答
0

Bingo...
script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"> 添加上面的行,如果没有 ui.js,它将无法工作。

于 2012-12-27T10:25:45.653 回答