首页 > 解决方案 > 烧瓶表单 onchange this.form.submit() throws TypeError: 'HTMLString' object is not callable

问题描述

我想在 FlaskForm 的选择字段上实现 onchange="this.form.submit()" 。

按照这个答案(我没有代表直接对此发表评论),但它给了我一个错误。

我的表单域:

            {{form.hidden_tag()}}
            <table>
                {{ render_field(form.result_name(**{"onchange":"this.form.submit()"})) }}

form_macros.html:

    <tr {% if field.errors %} class="error" {% endif %}>
        <td>{{ field.label }}</td>
        <td>{{ field(**kwargs)|safe }}</td>
    </tr>
    <tr class="error" >
        <td></td>
        <td>
            <ul>
                {% for error in field.errors %}
                    <li>{{ error }}</li>
                {% endfor %}
            </ul>
        </td>
    </tr>
{% endmacro %}

当我访问表单时,我得到了错误:

  File "...\anaconda2\envs\flask3\lib\site-packages\jinja2\runtime.py", line 262, in call
    return __obj(*args, **kwargs)
TypeError: 'HTMLString' object is not callable
127.0.0.1 - - [24/Oct/2019 12:55:52] "GET /drives/xdd_dev HTTP/1.1" 500 -```

标签: javascriptpythonflaskwtforms

解决方案


终于找到了一个对我有用的答案的问题。

这种格式给了我 onchange submit() 行为并且没有错误:

{{ render_field(form.result_name, onchange="this.form.submit()") }}


推荐阅读