You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery触发select2:selecting事件无法传递参数如何解决

问题原因

  • jQuery的trigger()方法如果直接将自定义数据作为第二个参数传递,该数据会作为事件处理函数的额外入参传入,不会自动合并到事件对象e的属性中,因此DAL原生绑定的处理函数从e.params读取数据时无法获取到你传递的内容。
  • 额外注意:你当前传递的data中没有create_id: true字段,就算参数传递成功,也会被DAL的判断逻辑直接拦截return,不会执行后续自定义逻辑。

修复后的触发代码

// 手动构造事件对象,自定义params属性和DAL的读取逻辑对齐
const selectEvent = jQuery.Event('select2:selecting');
selectEvent.params = {
    args: {
        data: {
            id: "324856",
            selected_text: "ABERTAMY (Karlovy Vary)",
            text: "ABERTAMY (Karlovy Vary)",
            // 需要走DAL的创建逻辑就保留这行,不需要可删除,同时对应修改DAL里的判断逻辑
            create_id: true
        }
    }
};
// 触发构造好的自定义事件
$( "#id_hlavni_katastr" ).trigger(selectEvent);

补充说明

如果你只是需要直接修改选中项,不需要触发select2:selecting的前置校验逻辑,可以直接调用select2原生赋值方法,实现更简单:

$("#id_hlavni_katastr").val("324856").trigger("change");

内容的提问来源于stack exchange,提问作者Jiří Pešík

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 14:45:08