如何在flask-wtf中使用html select的onChange传递参数

8
以下 Flask 代码创建了一个 select...option 下拉菜单:
模型:
class SelectForm(Form):
    country = SelectField('Country', choices=[
        ('us','USA'),('gb','Great Britain'),('ru','Russia')])

Flask应用程序:

@app.route('/new')
def new():
    form = SelectForm()
    return render_template('new.html', form = form )

HTML文件:

<form method=post action="/register">
    {{ render_field(form.country) }}
  <p><input type=submit value=Register>
</form>

宏文件定义了 render_field:

{% macro render_field(field) %}
  <dt>{{ field.label }}
  <dd>{{ field(**kwargs)|safe }}
  {% if field.errors %}
    <ul class=errors>
    {% for error in field.errors %}
      <li>{{ error }}</li>
    {% endfor %}
    </ul>
  {% endif %}
  </dd>
{% endmacro %}

如何在用户不必按下提交按钮的情况下自动提交onchange结果?是否可以更改宏或采用最优雅的方式?

谢谢

1个回答

9
可以通过添加JavaScript onchange函数作为属性来完成。
<form method=post action="/register">
    {{ render_field(form.country(**{"onchange":"this.form.submit()"})) }}
  <input type=submit value=Register>
</form>

使用render_kw设置如下... render_kw={"onchange":"this.form.submit()"}) - Ben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接