Sim*_*iah 6 scala playframework-2.0
我有一个包含2个字段的表单 - empno和name.两者都填充默认值.在视图中显示时,我想要的empno是只读且name可编辑.
在视图创建中,我@leaveform.value.get.empno用于显示就绪并且工作正常.只有在插入错误时才会出现此问题([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"))
}
Run Code Online (Sandbox Code Playgroud)
adi*_*dis 16
使用表单助手不是强制性的.如果使用它们,则可以readonly使用CSS 传递属性或设置字段样式,使其看起来只读.
CSS禁用Twitter引导程序:
@inputText(
editForm("createdOn"),
'id -> "createdOn",
'class -> "input-xlarge disabled",
'_label -> Messages("createdOn"),
'_help -> ""
)
Run Code Online (Sandbox Code Playgroud)传递可选属性: readonly
@inputText(
editForm("createdOn"),
'id -> "createdOn",
'class -> "input-xlarge",
'_label -> Messages("createdOn"),
'readonly -> "readonly",
'_help -> " This is read only"
)
Run Code Online (Sandbox Code Playgroud)您也可以不重新发送该字段,但显示其值:
<span class="date">Created on: @editForm("createdOn").value</span>
Run Code Online (Sandbox Code Playgroud)更新2018-01-24
播放字段现在返回a Optional,请参阅文档.这意味着您可以从字段中获取值,如:
@form("fieldName").getValue.get(可以扔一个NPE)@form("fieldName").getValue.getOrElse("defaultValue")| 归档时间: |
|
| 查看次数: |
3631 次 |
| 最近记录: |