当我以 html 形式通过 "onchange" 调用它时,为什么我的 JS 函数不工作?

Why isn't my JS function working when I call it through "onchange" in an html form?

好的,我应该先说我对 JS 很陌生,HTML。

我正在尝试编写一个简单的页面,它将用户输入的值输入到表单中,并使用它通过我的 findArtist() 函数调用 Spotify api。我已经用 npm 设置了项目,并在节点模块目录和所有这些东西中有适当的依赖关系。
这是我的代码:

<!DOCTYPE html>

<html lang="en-US">

<head>
    <meta charset="UTF-8">
    <title>My Title</title>
</head>

<body>
    <header>
        <h1>My Header</h1>
    </header>

    <section>
        <form>
            Search for an artist! <br/>
            <input type="text" name="searchrequest" value="" onchange="findArtist()">
        </form>
     </section>

    <script>
        function findArtist () {
            var artistName = document.getElementsByName("searchrequest")[0].value;
            spotifyApi.searchArtists(artistName)
                .then(function(data) {
                     console.log(data.body);
                }, function(err) {
                    console.error(err);
                });
        }
    </script>

</body>
</html>

当我在搜索栏中键入内容时,我希望在我的浏览器控制台中看到调用,由于 findArtist(),应该在其中记录 JSON,但没有任何反应。这是因为我在应该使用纯 JS 的时候尝试使用节点吗?我是否必须设置服务器才能拨打电话?我对我的实际问题是什么感到很困惑。

我想补充一点,我意识到使用 onchange 调用我的函数会使我超过我的 api 限制,因此关于调用函数的更好方法的建议是也很感激。

感谢您的帮助。

onchange 仅在您失去焦点或文本框模糊后检测更改。 正如 this 回答所说 oninput 可能只是正确的查找方法。