いくつかの値を含むフォームがあります。サーバーに POST されると、サーバーは情報を検証し、フィールドのいずれかが無効な場合は、入力されたフォームを返すことになっています。
私が現在設定している方法は、このようなものです。
2 つのフィールドを検証するフォームがあります。
val userForm = Form(
mapping(
"name" -> text,
"age" -> number(min=0, max=100)
)(User.apply)(User.unapply)
)
フォームのバインドに失敗した場合は、投稿したばかりの値を使用して同じフォームを読み込みます。
def createItem() = IsAuthenticated {
username =>
implicit request => {
createExperienceForm.bindFromRequest().fold(
formWithErrors => BadRequest(
views.html.createItem(formWithErrors)
),
validForm => {
val itemCode = Item.createItem(validForm)
Redirect(routes.Item.item(itemCode).url)
}
)
}
}
問題は、各フォームの HTML ページに手動で値を設定する必要があることです。例えば。@(itemForm: Form[ItemContent])
<input name="age" type="number" class="input-block-level" value="@itemForm.data.get("age")">
これは機能しますが、大きなフォームでは少しエラーが発生しやすくなります。すべての単一フィールドについて、値を直接設定する必要があります。これらのフィールドを自動入力することは可能ですか?