MaterializeCSS onAutocomplete 不触发 javascript 回调函数

MaterializeCSS onAutocomplete not triggering javascript callback function

我正在使用 Materialise CSS 创建一个 Google Web 应用程序链接到我们公司的 Google 驱动器,用于一些基本的文档流程。我正在尝试创建一个自动完成的文本字段,当用户开始键入该名称时,它将填充选项,并且选择选项时,它会触发onautococtlete回调,并自动填充基于所选客户端的以下字段。让字段自动完成没问题,但我无法触发 onAutocomplete 回调。

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <link rel="stylesheet" 
    href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
    <?!= include("pageCSS"); ?>
  </head>
  <body>
    <div class="row input-field">
        <input  class="autocomplete"type="text" id="autocompleteField"/>
        <label for="infoModalName">Client Name</label>
    </div>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"> 
  </script>
  <?!= include("pageScripts"); ?>
  </body>
</html>
<script>
function populateWords(words){
        
    //console.log(words)

    var autoComplete = document.getElementById("autocompleteField");
    M.Autocomplete.init(autoComplete, {data: words}, {onAutocomplete: function() 
       {console.log("Hello")}});

}
</script>

现在,我只是想让回调函数输出任何东西,而不是写入其他字段。很多在线文档都使用 JQuery 设置,但这是我需要开始工作的最后一件事,到目前为止我还没有使用任何 JQuery,所以我宁愿坚持使用 Javascript 可能的解决方案。

好像M.Autocomplete.init的论点和M.Autocomplete.init(elems, options)一样。 Ref 而且,words 的值似乎必须是一个对象。当这些反映到你的脚本中,就变成了下面这样。

修改后的脚本:

本次修改,请修改populateWords如下。

function populateWords(words){
  words = {key: "value"};  // This is a sample value for testing this modification.
  var autoComplete = document.getElementById("autocompleteField");
  M.Autocomplete.init(autoComplete, {data: words, onAutocomplete: function() {console.log("Hello")}});
}
  • In this modification, when k is put to the text input, the autoComplete is 运行 and when key is selected, console.log("Hello") is 运行.

注:

  • 很遗憾,根据您的问题,我无法知道您脚本中 words 的值。所以我使用了一个样本值。请根据实际情况修改。

参考: