我有一个HTML表单,其中包含美元值的输入。
<tr>
<form action="/save_report/" method="POST">
<td>{{event.event_name}}</td>
<input type="hidden" name='id' id="e_name" value="{{event.event_ID}}">
<td>{{event.office}}<br></td>
<td>{{event.event_city}}</td>
<td>
{% for r in event.reps %}
<li>{{r.date_worked.strftime('%m-%d-%Y')}} By {{r.rep}}</li>
{% endfor %}
</td>
<td>{{event.items}}</td>
<td>
<label for="total">Total bill for event</label><br>
<input type="number" min=0 step=".01" id="total" value="" name="total" placeholder="50.00" required><br>
<input type="hidden" name="id" value="{{event.event_ID}}">
<input type="hidden" name="office" value="{{event.office}}">
<button type="submit" class="btn btn-primary btn-md">Save</button>
</td>
</form>
</tr>
这仅在某些浏览器中有效,我不在乎数字输入上的小箭头。
我可以使用JS进行检查,但是如果用户将其关闭,它仍然无法解决问题。
我想将数据发布到服务器,并确保发布请求中的字符串格式为12.34,如果没有,则返回错误到HTML。
这是当前的服务器端:
@app.route('/save_report/',methods=['POST','GET'])
@login_required
def save_report():
role = session.get('role')
name = session.get('name')
id = session.get('id')
if request.method == 'POST':
total=request.form['total']
event=request.form['id']
office=request.form['office']
print(total,event,office)
return redirect(url_for('reports'))
我的想法是这样的if语句
if request.method == 'POST':
total=request.form['total']
event=request.form['id']
office=request.form['office']
# Need to validate format here?
if total != "11.11":
return redirect(url_for('reports' error=error))
else:
print(total,office)
return redirect(url_for('reports'))
但是我迷失了如何检查字符串的格式。任何指导都将不胜感激!