在flask中返回url_for为false

时间:2018-09-11 22:40:21

标签: javascript flask

<!DOCTYPE html>
<html>
    <head>
        <title>Vote</title>

        <script>
            document.addEventListener('DOMContentLoaded',()=>{
                document.querySelector('button').onclick=()=>{
                    return false;
                }
            });
        </script>
    </head>
    <body>            
        <button onclick="{{ url_for('chat') }}">hi</button>      
    </body>
</html>

这似乎无效

我也尝试过:

<button onclick="{{ url_for('chat') }} ; return false;">hi</button> 

并且:

<input type="button" id="submit" onclick="{{ url_for('chat') }} ; return false;" >

但是,这给了我控制台错误。

如何在单击按钮时停止页面加载?可以在<script>标记中使用url_for()吗?

1 个答案:

答案 0 :(得分:0)

所有url_for()所做的都是在烧瓶路径中返回端点的字符串。

例如,如果您有路线:

@app.route('/some_route')
def some_route():
    # do something
    return render_template('template.html')

{{url_for('some_route')}}将返回字符串'/some_route'

onclick html属性需要一个javascript函数,而不是路由的字符串。您可以执行以下操作:

<!DOCTYPE html>
<html>
    <head>
        <title>Vote</title>

        <script>
            $(function(){
            var someFunction = function(){
                 // perform actions
                }

            })

        </script>


    </head>
    <body>

<button onclick="someFunction()">hi</button>      


    </body>
</html>