提交后重置表单会提交提交的值而不是默认值

时间:2014-06-30 17:09:44

标签: javascript flask wtforms

我有一个问题是在提交后处理表格的重置。这问题早已在前面讨论过。请参阅示例here

这里是Flask表单(使用wtforms):

field = DecimalField(default=0.0, validators=[NumberRange(min=0, max=2)])

class AForm(Form):
    ff1=field

class BForm(Form):
    ff2=FieldList(FormField(AForm), min_entries=4)

更新:此处为Flask视图

@app.route('/test', methods=['GET', 'POST'])
def get_form():
    form = BForm(request.form)
    D=form.ff2.entries
    L=0
    if request.method == 'POST' and form.validate():
        for entry in D:
            L+=entry.ff1.data
        return render_template('test_stack.html', form=form, L=L)
    return render_template('test_stack.html', form=form, L=L)

if __name__ == "__main__":
    app.run()

这里是模板的主要部分,它呈现表单(更新):

<form action="/test" id="myForm" method=post>
        <table>
            <tr>
            {% for field in form.ff2 %}
                <th>
                    {{ field.ff1 }}
                </th>
            {% endfor %}
            </tr>
        </table> 
    <input class="button" type="submit" value="calc">
    <span id="result"> {{ L }} </span>
    <input class="button" type="reset" value="Reset" id="reset" ></input>
</form>

<script type=text/javascript>
    $("#reset").click(function() {
        $(document).ready(function(){
           ....
        });
    });      
</script>

我的问题如下:

虽然重置按钮在提交之前正常工作,但它不会在之后。提交后,默认值将成为已提交的值,不再是表单中定义的值。换句话说,当一个修改条目值然后单击重置时,将恢复先前提交的值而不是默认值。

我的问题是:

我应该怎么做,以便有一个重置按钮,允许恢复表单中定义的原始默认值?谢谢你的帮助。

请考虑我已经简化了上面给出的代码,而真正的代码包含许多不同的字段,每个字段都有自己的默认值。

0 个答案:

没有答案