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

Nic*_*ick 6 javascript jquery flask wtforms

以下烧瓶代码创建一个select ..选项下拉菜单:

模型:

class SelectForm(Form):
    country = SelectField('Country', choices=[
        ('us','USA'),('gb','Great Britain'),('ru','Russia')])
Run Code Online (Sandbox Code Playgroud)

烧瓶应用:

@app.route('/new')
def new():
    form = SelectForm()
    return render_template('new.html', form = form )
Run Code Online (Sandbox Code Playgroud)

html文件:

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

宏文件定义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 %}
Run Code Online (Sandbox Code Playgroud)

onchange的最佳方法是什么才能自动提交结果而无需用户按下提交按钮?有没有办法改变宏或什么是最优雅的方式?

谢谢

小智 8

可以通过添加 javascript onchange 函数作为属性来完成

<form method=post action="/register">
    {{ render_field(form.country(**{"onchange":"this.form.submit()"})) }}
  <input type=submit value=Register>
</form>
Run Code Online (Sandbox Code Playgroud)