首页 > 解决方案 > HTML:“onclick”每次刷新都会执行操作

问题描述

我不知道,为什么每次刷新都会执行“onclick”操作(在按钮上或 - 我都尝试过)。当我打开这个页面时,我可以观察到与“set_active_experiment()”和“create_experiment()”相关的动作。我只想在单击链接/按钮时调用这些函数。你有什么想法?

代码:

<html>
<head>
    <title>Experiments</title>
</head>

<body>
    <div class="experiments">
        <h3>Your experiments:</h3>
        {% with experiments = get_user_experiments() %}
            {% if experiments %}
                    {% for exp in experiments %}
                        <a href="{{ url_for('experiment') }}"><button onclick="{{ set_active_experiment(exp) }}">{{ exp }}</button></a>
                    {% endfor %}
            {% endif %}
        {% endwith %}
    </div>
    <div>
        <a href="{{ url_for('experiments') }}"><button onclick="{{ create_experiment() }}">Create new experiment</button></a>
    </div>
</body>

标签: htmlflaskbuttononclickjinja2

解决方案


您正在立即调用这些函数,因为您已将它们包裹在大括号中。这意味着,代码会立即被评估和执行。

<button onclick="{{ create_experiment() }}">Create new experiment</button>

如果要在单击时调用函数,请删除括号并将调用添加为字符串文字

<button onclick="create_experiment()">Create new experiment</button>

调用时也是如此set_active_experiment()


推荐阅读