如何将参数传递给 jQuery UI 对话框事件处理程序?

2024-01-08

我目前正在尝试连接 jQuery UI 对话框,以便我可以使用它在我的页面上创建新项目并修改页面上已有的项目。我在前者中做到了。然而,我目前正在为后一个问题而苦苦挣扎。我只是找不到一种好的方法来将要修改的项目传递到对话框。

这里有一些代码可以更好地说明这个问题。特别注意标有XXX的部分。 {{}} 部分源自 Django 模板语法:

$(".exercise").click(function() {
    $.post("{{ request.path }}", {
            action: "create_dialog",
            exercise_name: $(this).text()
        },
        function(data) {
            $("#modify_exercise").html(data.content);
        },
        "json"
    );

    $("#modify_exercise").dialog('open');
});

$("#modify_exercise").dialog({
    autoOpen: false,
    resizable: false,
    modal: true,
    buttons: {
        '{% trans 'Modify' %}': function() {
            var $inputs = $('#modify_exercise :input');

            var post_values = {};
            $inputs.each(function() {
                post_values[this.name] = $(this).val();
            });

            post_values.action = 'validate_form';

            //XXX: how to get the exercise name here?
            post_values.exercise_name = 'foobar';

            $.post('{{ request.path }}', post_values,
                function(data) {
                    if( data.status == 'invalid' ) {
                        $('#modify_exercise').html(data.content);
                    }
                    else {
                        location.reload();
                    }
                },
                "json"
            );
        }
    }
});

以下是一些标记,用于显示代码与结构的关系:

<div id="modify_exercise" class="dialog" title="{% trans 'Modify exercise' %}">
</div>

<ul>
    {% for exercise in exercises %}
        <li>
            <a class="exercise" href="#" title="{{ exercise.description }}">
                {{ exercise.name }}
            </a>
        </li>
    {% endfor %}
</ul>

也许以下可能更适合您的口味:

Before $("#modify_exercise").dialog('open');, add

$("#modify_exercise").data('exercise_name',$(this).text());

并在按钮回调中,替换post_values.exercise_name = 'foobar'; with

 post_values.exercise_name = $(this).data('exercise_name');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将参数传递给 jQuery UI 对话框事件处理程序? 的相关文章

随机推荐

  • 在日志传送的辅助服务器上创建用户

    我有一个生产服务器说ServerA我已设置日志传送到ServerB其处于只读模式 此日志传送的目的是降低生产服务器上某些昂贵的查询 痛苦的报告 的负载 现在 如果我必须使用我们的域帐户创建一些登录名 我无法执行此操作 因为辅助数据库位于st
  • 如何从 Rust 中的 Vec 中提取两个可变元素[重复]

    这个问题在这里已经有答案了 我试图从 Vec 中提取两个元素 它始终包含至少两个元素 这两个元素需要可变地提取 因为我需要能够在单个操作中更改这两个元素的值 示例代码 struct Piece x u32 y u32 name static
  • 使用 CSS 将按钮放置在另一个按钮之上

    我在这里需要一些高级 CSS 帮助 我有一个登录按钮和一个注册按钮 我只想一次显示一个 如果用户未登录 注册按钮应出现在登录按钮的顶部 我们有一个复杂而疯狂的后端 如果服务器认为用户未登录 它将生成注册按钮的代码 但是两者都会由服务器输出
  • Windows Python:使用区域设置模块更改编码

    使用Python 2 7 我正在编写一个抽象的网络抓取工具 在显示 打印 某些字符时遇到问题 我收到回溯错误 UnicodeEncodeError ascii codec can t encode character u u2606 in
  • 什么是无符号字符?

    在 C C 中 什么是unsigned char是用来 和普通的有什么不同char 在C 中 有以下三种distinct字符类型 char signed char unsigned char 1 char 如果您使用字符类型text 使用不
  • 如何从组件模板将数组作为 Input() 传递?

    我需要使用绑定将值数组传递给组件 例如 Component selector my component template div div export class MyComponent Input data any 然而 Angular
  • Prolog 中的算术,使用 2 的幂表示数字

    我有两个数字 让我们命名它们N and K 我想写N using K2 的幂 例如如果N 9 and K 4 then N可能N 1 2 2 4 2 0 2 1 2 1 2 2 我的程序应该输出类似的内容N 1 2 2 4 我习惯了C 我在
  • WPF 应用程序的单元测试失败,并出现 NotSupportedException“无法识别 Uri 前缀”

    我目前正在编写单元测试 在这个位置测试失败 并出现 NotSupportedException 无法识别 URI 前缀 经过小型研究 我已经注册了 pack Uri 方案 但它没有帮助 return WaitImageThumbnail W
  • 如何将工作负载项与已提交的更改链接起来?

    我正在使用 Git for Visual Studio Online 我添加了一个产品待办事项列表项 我添加了一些文件并提交更改 由于某种原因没有链接 我对该项目做了更多的提交并同步 我的第一个更改未与待办日志项链接 它仍然在任务下显示为待
  • 如何获取 grep 命令的输出(Python)

    我有一个输入文件 test txt 为 host dc2000 host 192 168 178 2 我想通过使用以下方式获取这些机器的所有地址 grep host root test txt 依此类推 我通过python获得命令输出 im
  • 从字符串Python中获取列表[重复]

    这个问题在这里已经有答案了 例如 我有一个字符串 1 2 3 我怎样才能让她翻一张清单 1 2 3 引号字符串 如果有其他字符 则保留字符串 我怎样才能做到这一点 例子 input output 1 2 3 1 2 3 input outp
  • 使用 DbSet 和 IQueryable 以及 NSubstitute 操作对象会返回错误

    我想用N替补 http nsubstitute github io 通过模拟对 Entity Framework 6 x 进行单元测试DbSet http msdn microsoft com en us library gg696460
  • 如何创建可加载 Lua(适用于 Windows)的自定义 .NET dll?

    我们正在 NET 框架中做一个项目 并希望稍后可以将其大部分功能用于 Lua 脚本 我想我可以在 LuaInterface 的帮助下编译一个 dll 并将其加载到 Lua 脚本中 但不知怎的 它不起作用 所做的工作如下 require lu
  • 使用Web浏览器控件通过类名获取div的内容?

    我有一个表格webBrowser1用于加载 HTML 部分包含以下行的页面的控件 div class cls Hello World div 我需要得到innerText of the div元素 我尝试了以下方法 string resul
  • Git 从index.lock 重命名为index 失败

    使用 GitHub Windows 客户端我做了一个sync将远程更改拉取到本地计算机 但在完成同步之前 我用完了磁盘空间 同步失败 现在我似乎有一堆本地更改 这些更改实际上是从原点拉取的更改 我尝试运行 git pull 但得到 C Us
  • Angular ui-grid 外部导出按钮

    我是 Angular UI GRID 的新手 我需要为导出功能创建外部按钮 例如PDF导出 and CSV 导出相似的到这张图片 https i stack imgur com kNkQH png 你知道我该怎么做吗 我还需要一个 打印 按
  • 错误:[Errno 32] 管道损坏 django

    有时 当我查看终端时 我会看到以下错误 任何人都可以让我知道它正在显示以及如何避免它 Exception happened during processing of request from 127 0 0 1 39444 Tracebac
  • 在 ASP.NET 中绑定 jqGrid 时出现问题

    我是使用 jqGrid 和 jquery 的新手 我无法将从 webmethod 检索到的 json 数据绑定到 jqGrid 上 我还使用 firebug 进行交叉验证 并且我正在从中接收数据 关于这方面的一些帮助将会很棒 我还想知道是否
  • 是否可以更新/覆盖 Airflow [‘dag_run’].conf?

    我们通常使用以下方式启动 Airflow DAG trigger dagCLI 命令 例如 airflow trigger dag my dag conf field1 1 field2 2 我们在操作员中使用以下命令访问此配置contex
  • 如何将参数传递给 jQuery UI 对话框事件处理程序?

    我目前正在尝试连接 jQuery UI 对话框 以便我可以使用它在我的页面上创建新项目并修改页面上已有的项目 我在前者中做到了 然而 我目前正在为后一个问题而苦苦挣扎 我只是找不到一种好的方法来将要修改的项目传递到对话框 这里有一些代码可以