小编Jel*_*aag的帖子

使用AJAX使用Flask-WTForms将条目追加到FieldList

我使用Flask-WTForms在Flask中制作了一个简单的表单,父母可以在其中注册自己和他的孩子。父母可以通过单击“添加孩子”按钮来注册任意数量的孩子。WTForms通过使用FieldList功能使此操作非常容易实现。

但是,单击“添加子项”按钮后,页面会自动刷新,因为它向服务器发出了请求。我想使用AJAX请求添加子表单,因此页面不会刷新。

我知道如何执行AJAX请求,发送回响应并将此响应添加到html页面。但是,我不知道如何将条目追加到表单对象并返回页面本身(以某种方式)以及更新后的表单对象。那有可能吗?

我的表格:

class ChildForm(FlaskForm):

    name = StringField(label='Name child')
    age = IntegerField(label='Age child')

    class Meta:
        # No need for csrf token in this child form
        csrf = False

class ParentForm(FlaskForm):

    name = StringField(label='Name parent')
    children = FieldList(FormField(ChildForm), label='Children')
    add_child = SubmitField(label='Add child')

    submit = SubmitField()
Run Code Online (Sandbox Code Playgroud)

我的路线:

@app.route('/register', methods=['GET', 'POST'])
def register():
    form = ParentForm()

    if form.add_child.data:
        form.children.append_entry()
        return render_template('register.html', form=form)

    if form.validate_on_submit():
        # do something with data

    return render_template('register.html', form=form)
Run Code Online (Sandbox Code Playgroud)

register.html:

<form action="{{ url_for('register') }}" method="post" id="parentForm">
    {{ form.hidden_tag() …
Run Code Online (Sandbox Code Playgroud)

ajax jquery flask python-3.x flask-wtforms

6
推荐指数
1
解决办法
1599
查看次数

标签 统计

ajax ×1

flask ×1

flask-wtforms ×1

jquery ×1

python-3.x ×1