scala – 如何在View中创建只读字段
发布时间:2020-12-16 19:10:50 所属栏目:安全 来源:网络整理
导读:我有一个包含2个字段的表单 – empno和name.两者都填充默认值.在视图中显示时,我希望empno是只读的,名称是可编辑的. 在视图创建中,我使用@ leaveform.value.get.empno来显示就绪并正常工作.问题只发生在插入错误期间([NoSuchElementException:None.get]).
我有一个包含2个字段的表单 – empno和name.两者都填充默认值.在视图中显示时,我希望empno是只读的,名称是可编辑的.
在视图创建中,我使用@ leaveform.value.get.empno来显示就绪并正常工作.问题只发生在插入错误期间([NoSuchElementException:None.get]). 问题: >问题是返回错误没有value属性.还有什么可以用来获得价值? 请参阅下面的代码: // ***** 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")) } 解决方法
使用表单助手不是强制性的.如果您使用它们,您可以只读传递属性或使用CSS为字段设置样式,使其看起来只读.
> CSS禁用Twitter引导程序: @inputText( editForm("createdOn"),'id -> "createdOn",'class -> "input-xlarge disabled",'_label -> Messages("createdOn"),'_help -> "" ) >传递可选属性:readonly @inputText( editForm("createdOn"),'class -> "input-xlarge",'readonly -> "readonly",'_help -> " This is read only" ) >您也可以不重新发送该字段,但显示其值: <span class="date">Created on: @editForm("createdOn").value</span> >更新2018-01-24 Play字段现在返回一个Optional,see the docs.这意味着您可以从字段中获取值,如: > @form(“fieldName”).getValue.get(可以抛出NPE)> @form(“fieldName”).getValue.getOrElse(“defaultValue”) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |