У меня есть 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,event,office)
return redirect(url_for('reports'))
Однако я заблудился о том, как проверить формат строки. Любое руководство с благодарностью!