我有一個包含2個字段的表單 - empno
和name
。兩者都填滿了默認值。當顯示在視圖中時,我想empno
是隻讀的,name
是可編輯的。如何在視圖中創建只讀字段
在視圖創建中,我使用@leaveform.value.get.empno
來顯示ready-only並正常工作。該問題僅在插入過程中發生,出現錯誤([NoSuchElementException: None.get])
。
問題:
- 問題是返回錯誤不具有價值屬性。我還能用什麼來獲得價值?
- 我可以跳過
@inputText
爲只讀字段嗎?
請參考下我的代碼:
// ***** CONTROLLER *****//
val leaveform = Form[LeaveModel](
mapping(
"empno" -> nonEmptyText,
"name" -> nonEmptyText
)((no, empno) => LeaveModel(empno, name))
((leave: LeaveModel) => Some(leave.empno, leave.name))
)
def create = withAuth { username => implicit request =>
// Define default values
val empno = "STUDENT"
val name = ""
// Set default values
val filledForm = leaveform.fill(LeaveModel(empno,name))
Ok(html.leave.form(filledForm))
}
def insert = Action (
implicit request => {
leaveform.bindFromRequest.fold(
error => {
BadRequest(html.leave.form(error)) // Question 1. Here is the error.
},
leave => {
LeaveModel.insert(leave)
Redirect(routes.indexController.index())
}
)
}
)
// ***** VIEW START***** //
@(leaveform: Form[LeaveModel])
@leaveform.value.get.empno
@helper.form(
action = (routes.LeaveController.update(oid)),
'id -> "leaveform") {
@inputText(leaveform("empno")) // Question 2.
@inputText(leaveform("name"))
}
我正在使用scala 2.0.3和th ere不是現場方法。我的代碼 - >'@ leaveform.field(「status」).value'和return error'value字段不是play.api.data.Form [models.LeaveModel]'的成員。 –
嗯..我使用java,但文檔說:您還可以使用@ elements.field訪問原始字段:http://www.playframework.org/documentation/2.0/ScalaFormHelpers。 – adis
@SimonSiah嘗試使用'@leaveform(「status」).value',我沒有使用Scala Forms的經驗,無論如何應該工作。 – biesior