jQuery 通用代码

标签 jquery asp.net-mvc asp.net-mvc-2 jquery-ui jquery-dialog


我在应用程序中使用 jQuery 模式对话框来处理正常的 CRUD 操作。在某些情况下,我什至打开了两个堆叠模式对话框。

然后,我在外部 javascript 文件中创建了两个通用函数,分别处理 CRUD 表单的显示和提交。

为了显示模式对话框,我调用以下函数

function _loadDialog(level, action, id, title, onCloseHandler) {
    var panel = panels[level];
    $(panel).dialog("option", "title", title);
    var url = action;
    if (id != "") url = url + "/" + id;
    $.ajax({
        type: "get",
        dataType: "html",
        url: url,
        data: {},
        success: function(response) {
            $(panel).html('').html(response).dialog('open');
        }
    });
    $(panel).unbind("dialogclose").bind("dialogclose", function(event, ui) {
        if (onCloseHandler != null) {
            onCloseHandler();
        }
    });
}

此函数接收一个 level 参数,该参数指示函数如何堆叠对话框以及在哪里放置从 ajax 调用返回的渲染的部分标记。这个功能运行良好。

在ajax调用返回的部分 View 中有输入,最后有以下代码

<div style="text-align:right;">
    <input type="submit" id="btnSave" value="Salva" />
</div>

对于 jQuery 部分,例如,

$("#contactForm").submit(function(event) {
    _submitForm(1, event, "#contactForm", "post", "html", '<%= Url.Content("~/Contact/Save") %>');
});

如您所见,提交函数具有以下签名

function _submitForm(level, event, formName, atype, adataType, aurl) {
}

它的句柄

  • 将表单提交给正确的 Controller 操作
  • 用户反馈(例如“操作执行成功”)
  • 对话框关闭操作

需要 level 参数来将所有功能(包括关闭对话框)寻址到所使用的正确 DIV 面板。

我希望能够有时将同一对话框显示为对话框,有时显示为子对话框。
为了能够做到这一点,我的意思是“从逻辑上讲”,因为我对 javascript 和 jQuery 不太熟悉,我需要进行以下更改:

  • 修改 _loadDialog 函数以将 level 参数保存在对话框标记本身内
  • 修改 _submitForm 函数,并使其使用之前从 _loadDialog 函数保存的正确 level 参数。

我怎样才能实现这个目标?

最佳答案

我对什么在何时何地有点困惑,但似乎您想将一些信息与特定元素相关联。

为此,您可以使用 jQuery 的 .data() 方法。它将把您想要的任何数据与特定元素关联起来。

不确定在您的情况下应该如何使用它,但这是一个通用示例:

$('#someSelector').data('level', 3);

现在,ID 为 someSelector 的元素会将数字 3 映射到其关联数据中的 'level' 属性。

因此要检索它,您可以这样做:

$('#someSelector').data('level'); // returns 3

当销毁具有关联数据的元素时(这只是此类数据的一个示例),您应该确保使用 .remove().empty() 或自动或手动删除数据的其他方法之一。

关于jQuery 通用代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4172511/

相关文章:

c# - DisplayFor() 显示从下拉列表中选择的内容

asp.net-mvc-2 - ASP.NET MVC 的 OData 实现

iis-7 - asp.Net MVC 2 应用程序上没有样式/图像

JavaScript 从服务器获取文件

asp.net-mvc - 无法定义两个对象之间的关系,因为它们附加到不同的ObjectContext对象mvc 2

javascript - DOM 元素存在,jQuery 无法操作它

c# - MVC ASP.NET 查询字符串不正确

asp.net - 将ASP.NET MVC放入WebForms页面

javascript - JQuery 延迟对象和 ajax 调用

JavaScript 三元运算符变成完整的 if/else 语句问题