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

JQuery AutoComplete如何手动触发select回调并传入自定义数据

手动触发jQuery Autocomplete select回调并传入自定义参数方案

方案1:直接调用Autocomplete实例的select方法

不需要模拟UI点击,直接访问组件实例触发回调,代码如下:

// 构造符合要求的自定义data,结构和原生返回的ui参数一致
const customData = {
    item: {
        label: "自定义显示名称",
        value: "自定义值",
        // 可添加任意你需要的自定义字段
        contact_id: 1001,
        phone: "13xxxxxxxxx"
    }
};

// 获取Autocomplete实例
const autocompleteInstance = $("#id_full_name").autocomplete("instance");
// 手动触发select回调,第一个参数可传入自定义事件对象,第二个为自定义参数
autocompleteInstance.select($.Event("autocompleteselect"), customData);

方案2:抽离业务逻辑独立调用(更灵活)

将select内的业务逻辑抽为公共函数,原生触发和手动调用都可直接使用:

// 抽离select回调业务逻辑
function handleAutocompleteSelect(event, data) {
    if (true) {
        /* 执行业务逻辑 */
    } else {
        /* 执行业务逻辑 */
    }
}

// 初始化Autocomplete时绑定抽离的函数
$("#id_full_name").autocomplete({
    source: "/messages/fax/contact_autocomplete/",
    minLength: 1,
    focus: function(event, ui) {
        event.preventDefault();
    },
    select: handleAutocompleteSelect
});

// 手动触发时直接调用函数即可
const myCustomData = {
    item: {
        value: "custom_value",
        label: "自定义联系人"
    }
};
handleAutocompleteSelect(null, myCustomData);

注意:使用方案1时如果不需要将自定义参数的value自动填充到输入框,可在select回调开头添加event.preventDefault()阻止默认行为。

内容的提问来源于stack exchange,提问作者Ballon Ura

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:42:00