【问题标题】:How to render a field when radio button is checked?选中单选按钮时如何呈现字段?
【发布时间】:2021-09-14 04:11:56
【问题描述】:

我使用 WTForms 并且有一个这样的单选字段:

class SimpleForm(Form):
     radio_choice = RadioField('Label', choices=[('ip', 'IP'), ('ifname','Ifname')], default = 'ip')

在我的 html 中,我使用 jinja2 语法:

 {{ render_field(form.radio_choice) }}
 {{ form.radio_choice.data }}
 {% if form.radio_choice.data == ip %}
      {{ render_field(form.weight) }}
 {% else %}
      {{ render_field(form.domain) }}
 {% endif %}

如何在 html 上获取 form.radio_choice.data,我想在 form.radio_choice.data == ifname 时渲染域字段,但我只能捕获这样的值:

@app.route('/',methods=['post','get'])
def hello_world():
    form = SimpleForm()
    if form.validate_on_submit():
        print form.radio_choice.data

【问题讨论】:

    标签: flask radio-button jinja2 wtforms


    【解决方案1】:

    您似乎误解了 jinja 模板的用途。 Jinja 在服务器端被解释,当你执行render_template() 之后,它被发送给客户,客户可以填写您的表格。因此,当您的 jinja 模板被解释时,您的字段中还没有数据。

    出于您的目的,当客户端填写表单时,您需要编写一些在客户端执行的 javascript 代码。这时候javascript就可以有数据了,然后根据单选按钮上的选择显示你想要的任何东西。

    您可以从获取单选按钮值开始:How to get the selected radio button’s value?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 2020-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多