2
我有一個包含一些值的表單。當發送到服務器時,服務器驗證信息,並且如果任何字段無效,應該返回填充的表單。使用Play框架自動填充表單
我現在設置的方式就是這樣。
我有一個表單驗證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:表格[ItemContent])
<input name="age" type="number" class="input-block-level" value="@itemForm.data.get("age")">
雖然此方法有效,它將成爲一個位錯誤俯臥於較大的形式。對於每個字段,我需要直接設置值。是否可以自動填充這些字段?
我真的不知道你所說的「自動填充」的意思。你可以使用標準遊戲助手,例如:@inputText(createExperienceForm(「name」),'_label - >「Name」),它會自動設置你的字段的值 – Kris
如果默認助手的佈局不符合你的需求,你總是可以覆蓋它! http://www.playframework.com/documentation/2.1.x/ScalaFormHelpers –
用[javascript]嘗試[metawidget](http://metawidget.org/) –