【问题标题】:Flask WTForm: add new field based on previous inputFlask WTForm:根据先前的输入添加新字段
【发布时间】:2020-12-08 23:34:07
【问题描述】:

我有一个带有SelectField 的表单,如果选择了其中的特定选项,我想显示一个不同的字段,用户可以在其中输入更多选项。

所以我的表单类看起来像

class QuestionForm(FlaskForm):
    type = SelectField("Question Type")
    options = SelectField("options", validators=[Optional()])

然后我的views\questions.py 蓝图渲染表单就像

def question():
    ...
    form = QuestionCreationForm()
    form.type.choices = [
        (type, type) for type in ["Type 1", "Type 2"]
    ]
    form.options.choices = ["option 1", "option 2"]
    if form.validate_on_submit():
        ...
    else:
        flash_form_errors(form)

    return render_template(
        "question.html",
        form=form,
    )

最后是html

{% extends "base.html" %}
{% block page_title %}Questionnaire{% endblock %}
{% block content %}
...
    <form method="POST" action="{{ url_for('questionnaire.questionnaire') }}">
        <div id="type_selection" class="select is-medium is-expanded" onchange="WHAT HERE?">
              {{ form.type }}
        </div>
        <div id="option_selection" class="select is-medium is-expanded DISPLAY NONE HERE?" onchange="WHAT HERE?">
              {{ form.options }}
        </div>
    </form>
....
{% endblock %}
<script>
    function myFunction() {
        // ??
    }
</script>

所以我的猜测是对我的 typesform 字段进行 onchange 并检查选定的值是否是 Type 2,以便更改要显示的 optionsfield 的呈现。但是,我无法正确地将所有部分粘在一起。

这个问题可能是重复的,但我不能在那里发表评论,并且提供的答案不够具体,无法帮助像我这样的新手。谢谢! Flask WTF forms: can a new field be shown if a user selects a specific choice in SelectMultipleField?

【问题讨论】:

    标签: python flask flask-wtforms wtforms


    【解决方案1】:

    为了不让大家对这个问题的答案感到困惑。你也需要一些javascript。 youtube 上有非常直接的教程,不超过 10 - 15 分钟,所以搜索烧瓶动态选择字段。希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-05-12
      • 2021-12-18
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2019-02-07
      • 2019-07-20
      相关资源
      最近更新 更多