2012-12-27 56 views
1

我有一个与asp.net窗体实现JQuery对话框的问题。当我点击#hlChangePassword时,什么都没有发生。这是我下面的代码:与asp:jQuery对话框窗体:超链接

<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> 

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

回答

1

User 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选择器,它可以在运行时由于母版页或用户控制而更改。因此,使用服务器ID或静态ID链接或如下如果您正在使用asp.net 4.0以上如下

ClientIDMode="Static" 


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

我应该把它放在哪里? – 7alhashmi

+0

仍然不能正常工作:S – 7alhashmi

+0

什么是您的超链接在浏览器中的ID?是否一样 –

0

宾果...
脚本SRC =“http://code.jquery.com /ui/1.9.2/jquery-ui.js“> 添加上面的行它不会工作没有ui.js.