【问题标题】:Flask-WTForms auto-submit onchange with macro not workingFlask-WTForms 自动提交 onchange 宏不起作用
【发布时间】:2020-03-04 14:19:24
【问题描述】:

我希望我的表单在最后一个字段检测到输入后自动提交。根据我在网上可以找到的内容,这是我在 HTML 方面的内容...我知道我可能遗漏了一些东西...

{% extends "base.html" %}

{% from 'bootstrap/form.html' import render_field %}

{% block content %}
    <img src="/static/logo.jpg"  alt="logo" width="50%" height="auto">
    <h1>Scan ABC...</h1>
    <form action="" method="post" novalidate>
        {{ form.hidden_tag() }}
        <p>
            {{ form.A.label }}<br>
            {{ form.A(autofocus=true, required=true, size=32) }}
        </p>
        <p>
            {{ form.B.label }}<br>
            {{ form.B(required=true, size=32) }}
        </p>
        <p>
            {{ form.C.label }}<br>
            {% macro render_field(C(**{required=true, size=32, onchange="this.form.submit()"})) %}
            {% endmacro %}
        </p>
        <p>{{ form.submit() }}</p>
    </form>
{% endblock %}

这是我的 form.py

from flask_wtf import FlaskForm
from wtforms import StringField, IntegerField, SubmitField
from wtforms.validators import DataRequired


class Form(FlaskForm):
    A= StringField('A', validators=[DataRequired()])
    B= StringField('B', validators=[DataRequired()])
    C= IntegerField('C', validators=[DataRequired()])
    submit = SubmitField('Submit')

我收到此错误

jinja2.exceptions.TemplateSyntaxError: expected token ',', got '('

在这条线上

{% macro render_field(weight(**{required=true, size=32, onchange="this.form.submit()"})) %}

【问题讨论】:

    标签: python flask jinja2 wtforms


    【解决方案1】:

    在没有自动提交的其他情况下是否有效?就我而言,我只使用 onchange="submit()",例如:

    {{ filterform.search_text(class="form-control-button", onchange="submit()") }}
    

    导致:

    <input checked class="form-control-button" id="search_keywords" name="search_keywords" onchange="submit()" type="checkbox" value="y">
    

    也许你想试试 onchange="submit()"?

    【讨论】:

    • 这行得通:{{ render_field(form.weight, required=true, size=32, onchange="submit()") }} 但我仍然需要在字段外点击(即字段失去焦点)提交表单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 2023-03-28
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多