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

MaterializeCSS onAutocomplete回调函数无法触发的原生JS解决方案咨询

问题原因

你调用M.Autocomplete.init初始化组件时参数格式不符合Materialize v1.x的原生API规范:该方法仅接收2个入参,第一个为目标DOM元素,第二个是包含所有配置项的单个对象。你当前将onAutocomplete配置拆分到了第三个独立对象中,框架无法识别该参数,因此回调不会被触发。

修复后的JS代码

function populateWords(words){
    var autoComplete = document.getElementById("autocompleteField");
    // 所有配置项放在同一个对象内
    M.Autocomplete.init(autoComplete, {
        data: words,
        onAutocomplete: function(selectedText) {
            // selectedText为用户选中的补全文本,可直接用于后续字段填充
            console.log("选中内容:", selectedText);
        }
    });
}

额外注意事项

如果你的populateWords函数会被多次调用更新补全数据,建议在初始化前先销毁已存在的组件实例,避免重复初始化导致异常:

function populateWords(words){
    var autoComplete = document.getElementById("autocompleteField");
    // 先销毁已有实例
    var oldInstance = M.Autocomplete.getInstance(autoComplete);
    if (oldInstance) {
        oldInstance.destroy();
    }
    // 重新初始化
    M.Autocomplete.init(autoComplete, {
        data: words,
        onAutocomplete: function(selectedText) {
            console.log("选中内容:", selectedText);
        }
    });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:36:02