我有一个问题是在提交后处理表格的重置。这问题早已在前面讨论过。请参阅示例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>
我的问题如下:
虽然重置按钮在提交之前正常工作,但它不会在之后。提交后,默认值将成为已提交的值,不再是表单中定义的值。换句话说,当一个修改条目值然后单击重置时,将恢复先前提交的值而不是默认值。
我的问题是:
我应该怎么做,以便有一个重置按钮,允许恢复表单中定义的原始默认值?谢谢你的帮助。
请考虑我已经简化了上面给出的代码,而真正的代码包含许多不同的字段,每个字段都有自己的默认值。