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
的值。所以我使用了一个样本值。请根据实际情况修改。
参考:
我正在使用 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 whenkey
is selected,console.log("Hello")
is 运行.
注:
- 很遗憾,根据您的问题,我无法知道您脚本中
words
的值。所以我使用了一个样本值。请根据实际情况修改。