flask - 使用 Flask wtf_form 根据 RadioField 选择显示/隐藏输入字段或 div
问题描述
我正在尝试使用 Flask 构建网站,但找不到一个问题的解决方案。我正在尝试根据 RadioFeild 选择隐藏或显示输入字段。此外,如果输入字段显示,它必须是必需的。除了知道选择了哪个 RadioField 选项之外,我实际上一切正常。我可以在 127.0.0.1:5000 上加载页面时看到表单,我可以看到 RadioField 有 2 个选择:是和否,但是当我单击是时,没有任何更改,隐藏的输入字段仍然没有显示。请帮忙!
app.py
class MyClass(FlaskForm):
my_field = RadioField("bla-bla-bla", choices=[('Yes', 'Yes'), ('No', 'No')], validators [InputRequired()])
@app.route("/some_page")
def some_page():
form = MyClass()
return render_template("some_page.html", form=form)
_render_field.html
{% macro render_radio_field(field) %}
<div class="form__item">
<label class="form__label">{{field.label.text }}</label>
<div class="form-group">
{{ field(class_='form__input', **kwargs)|safe }}
{% for subfield in field %}
<div class="form__item">
<label>
{{ subfield }}
{{ subfield.label.text }}
</label>
</div>
{% endfor %}
</div>
</div>
{% endmacro %}
some_page.html
{% from "_render_field.html" import render_field, render_radio_field %}
{% extends "layout.html" %}
{% block title %}My Title{% endblock %}
{% block content %}
<div style="width:600px; margin:0 auto;">
<h3>Some Text</h3>
<form class="form" action="{{url_for('some_page')}}" method="POST">
{% from "_render_field.html" import render_field, render_radio_field %}
{{ form.csrf_token }}
{{ render_field(my_field, title="", style="list-style:none") }}
{% if form.my_field.option == "Yes" %}
{{ render_field(form.some_other_StringField, placeholder="Please explain:", title="") }}
{% endif %}
<input type="submit" name="" value="login" class="form__btn">
</form>
</div>
{% endblock %}
解决方案
推荐阅读
- google-sheets - 如何使用 Where 查询中的 Count 仅过滤 Group by is > 1?
- r - dplyr 过滤器不过滤整个数据集
- nlp - 关于 Pytorch seq2seq 教程中注意力计算的问题:与原始 Badahnau 或 Luong 论文的差异
- java - 使用带有 jwt 的 spring boot 构建 restful api 服务的最佳实践
- anaconda - 在 conda 中更新软件包
- python - simple-salesforce 中的 Salesforce MFA
- php - XAMPP 服务器已被 CORS 策略阻止:
- java - Apache camel Blueprint 在 Blueprint Container 启动期间有未解决的依赖组件=https
- java - 消费者不读取来自 Kafka 主题的消息(Akka Stream Kafka)
- r - R根据其他列有条件地添加指定数量的新行