【发布时间】: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