阅读自动完成文档here后,为什么onAutocomplete上总是在控制台内记录来自data数组中所选选项的值-1而不是de id

    <div class="input-field outlined s4" style="margin: 5px 5px;">
      <i class="material-icons prefix">search</i>
      <input type="text" id="vincularSetor.colaborador_id.autocomplete" form="form_vincularSetor" class="autocomplete">
      <label for="vincularSetor.colaborador_id.autocomplete">Nome do Colaborador</label>
    </div>
    
    <script>
      document.addEventListener('DOMContentLoaded', function() {
        var elems = document.querySelectorAll('[id="vincularSetor.colaborador_id.autocomplete"]');
        var instances = M.Autocomplete.init(elems, {
          // specify options here
          minLength: 0, // shows instantly
          data: [
            {id: 3, text: "Name 1"},
            {id: 4, text: "Name 2"}
          ],
          onAutocomplete: () => {
            autocomplete = M.Autocomplete.getInstance(document.getElementById("vincularSetor.colaborador_id.autocomplete"));
            console.log(autocomplete.activeIndex);
          }
        });
      });
    </script>

推荐答案

仅当自动完成收件箱打开并且用户使用键盘上/下按钮 Select 选项时才使用activeIndex.

为了找出所选项目,您可以从onAutocomplete的第一个参数中读取.

演示 :

document.addEventListener('DOMContentLoaded', function() {
  var elem = document.getElementById('vincularSetor.colaborador_id.autocomplete');
  M.Autocomplete.init(elem, {
    minLength: 0,
    data: [{
        id: 3,
        text: "Name 1"
      },
      {
        id: 4,
        text: "Name 2"
      }
    ],
    onAutocomplete: (selectedItems) => {
      console.log(selectedItems);
    }
  });
});
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@materializecss/materialize@2.0.3-alpha/dist/css/materialize.min.css">
<script src="https://cdn.jsdelivr.net/npm/@materializecss/materialize@2.0.3-alpha/dist/js/materialize.min.js"></script>
<div class="input-field outlined s4" style="margin: 5px 5px;">
  <i class="material-icons prefix">search</i>
  <input type="text" id="vincularSetor.colaborador_id.autocomplete" form="form_vincularSetor" class="autocomplete">
  <label for="vincularSetor.colaborador_id.autocomplete">Nome do Colaborador</label>
</div>

Javascript相关问答推荐

可以的.是否可以在不预编译的情况下使用嵌套 Select 器?

没有输出到带有chrome.Devtools扩展的控制台

Plotly热图:在矩形上zoom 后将zoom 区域居中

无法在nextjs应用程序中通过id从mongoDB删除'

从WooCommerce Checkout Country字段重新排序国家,保持国家同步

当点击注册页面上的注册按钮时,邮箱重复

分层树视图

在react JS中映射数组对象的嵌套数据

在JS中拖放:检测文件

TypeError:无法分解';React2.useContext(...)';的属性';basename';,因为它为空

如何将未排序的元素追加到数组的末尾?

如何在Bootstrap中减少网格系统中单个div的宽度

如何在JAVASCRIPT中临时删除eventListener?

使用Ace编辑器对子组件实例的native-element 进行Angular 获取时面临的问题

Docent.cloneNode(TRUE)不克隆用户输入

在D3条形图中对具有相同X值的多条记录进行分组

如何为仅有数据可用的点显示X轴标签?

为什么在运行于<;img>;事件处理程序中的JavaScript中x和y是不可变的?

需要RTK-在ReactJS中查询多个组件的Mutations 数据

输入数据覆盖JSON文件