如何在更改事件中自行提交 web2py 组件

How to self-submit a web2py-component at change-event

我加载了两个不同的组件 (A,B),我可以在其中将元素从 A 拖放到 B。

是否可以在组件 B 上触发 "self-submit" 并在拖动目标容器更改时传递参数? 提前致谢。

编辑 1: components 是非常简单的解决方案,A 显示一个列表,其中的元素可以被拖动(并拖放到 B),B 开始时是空的。我想实现的是,如果将 en 元素放入 B,则元素的信息将传递给控制器​​。

编辑 2: 同时,当元素被删除时,我能够触发一个事件。我使用了一个名为 Dragula (http://bevacqua.github.io/dragula/) 的小型拖放脚本 - 事件是这样触发的:

dragula([document.querySelector(".draggable"),document.querySelector(".drag-target")]).on("drop", function () { console.log("This Works!");});

您可以使用类似以下内容来回答您的拖动事件:

web2py_component("/app/default/comp_b.load?yourpar=1","comp_b_id");

其中 comp_b_id 是没有 #

的 component_b 的 ID

根据 Massimilianos 的提示和 this answer 我想到了这个解决方案:

组件 A(拖动开始的地方)现在包含此脚本:

<script>
    /* Provides Drag and Drop functionality */
    d = dragula([document.querySelector(".drag-start"), document.querySelector(".drag-target")]);
    d.on('drop', function(el) {
        var test1, test2, id;
        test1 = 'test1'; /* Some information */
        id = $('.drag-target').attr('id'); /* The target ID */
        /* Pass data to the controller */
        $.post("{{=URL('controller', 'function')}}"+"/"+test1);
        /* Reload data to the target id */
        x = web2py_component("/app/controller/function.load"+"/"+id);
    });
</script>