Wtforms-迭代呈现Fieldlist内formfield中的IntegerRangefields

时间:2018-06-26 20:05:02

标签: javascript for-loop macros jinja2 flask-wtforms

我的表格很长(超过100个字段)。它由各种字段类型组成,包括IntegerRangeFieldFormFieldFieldList等。

这是一个简化的示例:

class SubForm(Form):
    first_name=TextField('First')
    age=IntegerRangeField('Age')
class MainForm(Form):
    height=IntegerRangeField('Height')
    weight=IntegerRangeField('Weight')
    friend_list=FieldList(FormField(SubForm),'Friends')

IntegerRangeFields默认情况下不显示滑块值,因此我使用JavaScript函数JSfunction在模板中显示滑块值。

所有内容都使用宏呈现:

{% for field in form if field.type not in ["HiddenField","CSRFTokenField"] %}
    {% if field.type in ["IntegerRangeField"] %}
        {{field.label}}
        {{field(min=0, max=100, oninput="JSfunction(this)")}}
        <output><script> document.write() </script></output>
    {% else %}
        {{field.label}}
        {{field}}
    {% endif %}
{% endfor %}

我在引用IntegerRangeFieldsFormField内的FieldList时遇到麻烦,因此无法对它们应用JSfunction并显示滑块值。我怎样才能做到这一点?到目前为止,所有字段/小部件都已渲染,但是FormFieldsFieldList中的滑块不显示滑块值。

谢谢!

编辑: 不在“字段列表”中的IntegerRangeFields会显示为滑块,移动滑块会在滑块旁边显示滑块值:

height ----------|| 100

FieldList中的IntegerRangeFields没有应用JS函数,因此在滑块旁边没有整数值:

age ||----------

我很难遍历FieldLists的FormFields中的IntegerRangeFields。

0 个答案:

没有答案