从Jquery对话框表单访问JS文件函数

时间:2012-06-25 17:17:53

标签: jquery asp.net-mvc jquery-ui

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

表格中有按钮。我想在单击按钮时调用附加到视图的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文件中找到我的函数?

请帮助。

1 个答案:

答案 0 :(得分:1)

首先,尝试远离内联Javascript并使用选择器来启动您的功能。例如,

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

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

此外,您的对话框是IFrame还是仅仅是模式?如果它只是一个模态,它仍然是它来自的页面的一部分,并且不需要引用“父”。认为它是一个位置很好的div,似乎是另一个页面。

修改

查看您的JS代码文件,看起来您仍然缺少$(function(){statement

的结束括号

您的密码:

$(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() {
        ....
    }