为什么我的 onclick 按钮在页面加载时调用函数?

Why is my onclick button is calling a function when the page loads?

我正在使用 Express 使用 NodeJS。我的 EJS 客户端文件现在在单击按钮时遇到问题。

我有一个从 JS 文件导入到我的 EJS 文件的函数,我可以通过 <% helper.test() %>

来调用它

但是,我的按钮决定在页面加载时调用此函数,而不是在我单击按钮时调用此函数。

<button onclick="<% helper.test() %>">Button Test</button>

如果我将按钮代码更改为

<button onclick="helper.test()">Button Test</button>

它说 helper 没有定义。我是这一切的新手,任何帮助将不胜感激。

这可能是因为属性“onclick”上的括号。 以这种方式尝试您的按钮代码:

<button onclick="<% helper.test %>">Button Test</button>

试试这个,从 helper.test()

中删除 ()
<button onclick="helper.test">Button Test</button>

由于helper.test是服务端定义的方法,客户端无法直接调用该方法。客户端和服务器是单独的应用程序,只能使用 HTTP 相互通信。

您可以改为在调用 helper.test 的服务器上定义一个 HTTP 端点,并让您的按钮向该端点发出请求。

这是一个粗略的例子:

服务器:

router.get("/helper_test", () => {
    helper.test();
});

客户:

<button onclick="callHelperTest()">">Button Test</button>

<script>
function callHelperTest() {
    fetch("/helper_test");
}
</script>