2011-12-12 106 views
0

我已经在我的项目中放置了一个模态对话框,它拉起了一个局部视图。它工作得很好,但关闭按钮不起作用。关闭按钮在jquery对话框中不起作用

我试着用$('#resetPasswordDialog')自引用它。dialog('close'); , 没有骰子。我究竟做错了什么?这对我来说似乎相对简单,并且我读过的每个示例都显示只需调用$(this).dialog(“close”);作品。

我目前在MVC2中使用它。

<script type="text/javascript" src="<%: Url.Content(" jquery-1.6.2.js") %>"></script> 
    <script type="text/javascript" src="<%: Url.Content("~/Scripts/jquery-1.6.2.min.js") %>"></script> 
    <script type="text/javascript" src="<%: Url.Content("~/Scripts/jquery-ui-1.8.16.custom.min.js") %>"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $('#resetPasswordDialog').dialog({ 
       autoOpen: false, 
       width: 750, 
       resizable: false, 
       title: 'Reset Password', 
       modal: true, 
       open: function (event, ui) { 
        $(this).load('<%: Url.Action("ResetPassword") %>'); 
       }, 
       buttons: { 
        "Close": function() { 
         $(this).dialog("close"); 
        } 
       } 
      }); 
      $('.forgot-password-button').click(function() { 
       $('#resetPasswordDialog').dialog('open'); 
      }); 
     }); 
</script> 
+1

在你使用时,你点击这个关闭按钮的JavaScript调试工具的控制台窗口中会发生什么?一个错误消息可能? –

+0

您将需要放置一个[jsFiddle](http://jsfiddle.net/)来重现您的错误。这些都是库的一些非常旧的版本,所以它可能是任何东西。 – Andrew

+0

你能发布ASP.NET代码吗?你确定按钮有正确的ID吗?如果您在$(this).dialog(“close”)之前放置console.log(“测试调用”),会发生什么? –

回答

0
buttons: { 
    "Close": function() { 
     alert('test'); 
     $(this).dialog("close"); 
    }, 
    Cancel: function() { 
    alert('test2'); 
    $(this).dialog("close"); 
    } 
}, 
beforeClose: function() { 
    alert('test3'); 
} 

会增加你的代码中的这些警告什么?

+0

是的,在你的第一个例子中,添加一个“alert('test');” $(this).dialog(“close”);事实上会引发警报。它看起来像击中该功能就好,但$(this).dialog(“close”);什么也没做。同样,我应该提到我甚至尝试了$('#resetPasswordDialog')。dialog('close');. @Brian Hoover(在上面的评论中):是的,一切都有正确的ID。如果他们不这样做,模式对话框将不会打开,并且内部的局部视图也不会很好地工作。 – user961794

+0

现在我已经想到了,一旦对话框关闭,它就不能重新打开,直到页面刷新。我认为,一旦对话被打开,实质上就是无法引用它。 – user961794

0

我相信,如果由于局部视图的原因,你不能运行脚本。

我的工作是: 尝试将对话框的JavaScript放入父页面。例如,没有局部视图

希望这有助于