DecimalRangeField
ユーザーが入力を提供する必要があるように、を検証しようとしています。問題は、私は、ビルドインバリデータをリードし、インスタンス50(真ん中のスライダーが表示されます)のためのデフォルト値を、したいということですDataRequired
し、InputRequired
彼らもユーザーならば与えられたスコアとしてデフォルト値を取るために失敗する(私は両方を試してみました)アクションを表示しませんでした(少なくともこれは私が思うことです)。
デフォルト値を設定し、ユーザーが何らかのアクションを実行したかどうかを確認し(最終的にデフォルト値と同じ値であっても、スライダーのどこかをクリックする)、「このフィールドは必須です」などのエラーを表示するにはどうすればよいですか。ユーザーはスライダーに触れませんでしたか?これにはカスタムバリデーターが必要ですか?
提案をありがとう。
関連するコード部分は次のとおりです。
index.py
@app.route("/questionnaire1", methods=['GET', 'POST'])
def controlAndDeliberation():
form = controlAndDeliberationForm()
if form.validate_on_submit():
return redirect(url_for())
return render_template('control_and_deliberation.html', form=form)
アンケート.py
class controlAndDeliberationForm(FlaskForm):
perceivedControlQ1 = DecimalRangeField(
'1. How much control did you feel you have?',
default=50,
validators=[DataRequired()]
)
control_and_deliberation.html
<div class="form-group">
{{ form.perceivedControlQ1.label }}<br>
{{ form.perceivedControlQ1 }}
{% for error in form.perceivedControlQ1.errors %}
<span style="color: #d60000; font-size: 15px">{{ error }}</span>
{% endfor %}
</div>
これはフロントエンドで最適に処理する必要があるかもしれません(誰かがここで私を修正するために現れない限り)。
Javascriptを使用して、フォームの送信を防ぎ、ユーザーがスライダーをクリックするまでメッセージを表示できます。
そうしないと、特定の値を拒否してページをリロードし、スライダーを「50」から離すようにユーザーに通知するエラーメッセージを点滅させる必要があります。ここでの問題は、スライダーであるため、ユーザーが入力を提供する必要がなく、フォームの送信時に常に数値を送信することです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加