0

我有一个包含表单的 div。我使用该 div 作为使用 jquery UI 对话框的对话框。

表格中有按钮。单击按钮时,我想从附加到视图的 JS 文件中调用方法。

不知何故,对话框找不到功能。

HTML

<div id="Applon" title="Edit Slab" style="width: 100%; background-color: #33CCCC;">
<form action="\" id="frmDtl">
....
......


<button id="dtlCancel"  type="button" onclick="this.parent.CancelDetails()" style="font-weight: bold; color: #3333FF; width:60px;">
<div><span>Cancel</span></div>  
</button>
</form>
</div>

JS文件

$(function() {
//  Dialog

    $("#Applon").dialog({
        autoOpen: false,
        height: 370,
        width: 650,
        modal: true,
        buttons: {

            Close: function() {
                $(this).dialog('close');
                //$('input:visible:enabled:first').focus();
            }
        },
        close: function() {
        }
    });
});

    function CancelDetails() {
        ....
    }

我在 VS2008 的 MVC2 视图中使用它。该视图有两种形式,其中一种是对话框。

单击按钮时,如何使对话框在 JS 文件中找到我的函数?

请帮忙。

4

1 回答 1

1

首先,尝试远离内联 Javascript 并使用选择器来触发你的函数。例如,

$(function() {
   $("#dtlCancel").click(function(){
     CancelDetails();
  });
});

如果它来自单独的资源(PartialView),您可以将它放在您的模态内容中。

另外,您的对话框是 IFrame 还是模式?如果它只是一个模式,它仍然是它来自的页面的一部分,不需要对“父”的引用。认为它是一个放置良好的 div,看起来像是另一个页面。

编辑

查看您的 JS 代码文件,您似乎仍然缺少 $(function(){ 语句的右大括号

您的代码:

$(function() {
//  Dialog

    $("#Applon").dialog({
        autoOpen: false,
        height: 370,
        width: 650,
        modal: true,
        buttons: {

            Close: function() {
                $(this).dialog('close');
                //$('input:visible:enabled:first').focus();
            }
        },
        close: function() {
        }
    });
//From your code above (next line)
    }
//Replace the above with this - basically add a ); after the curly brace
});

    function CancelDetails() {
        ....
    }
于 2012-06-25T17:22:20.933 回答