我正在尝试使用Play!的@select帮助程序在表单中填充一个组合框,但是经过很多搜索,我没有找到我需要的东西。
我想要这样的东西:
@select(
filmeForm("Director"),
options(Seq(aListOfDirectors))
)
这是一种电影注册形式,可以获得导演的外键。我需要列出导演的姓名,并在发送表单时获取所选导演的ID。 如果这种方式不可行,类似的替代方案也将很有用。有谁能帮帮我吗?提前致谢。
我正在尝试使用Play!的@select帮助程序在表单中填充一个组合框,但是经过很多搜索,我没有找到我需要的东西。
我想要这样的东西:
@select(
filmeForm("Director"),
options(Seq(aListOfDirectors))
)
HTML select
标签可以有一组类似以下的 option
标签:
<select id="directors-select" name="director">
<option value="steven-spilberg">Steven Spilberg</option>
<option value="stanley-kubric">Stanley Kubric</option>
</select>
select
的option
,Play @select
助手要求Seq
包含一个元组(String, String)
,其中包含value
属性和呈现给用户的"label"。换句话说,options
参数需要是一个Seq[(String, String)]
。以下是文档中提供的示例:
@select(
field = myForm("mySelect"),
options = Seq(
"Foo" -> "foo text",
"Bar" -> "bar text",
"Baz" -> "baz text"
),
'_default -> "Choose One",
'_disabled -> Seq("FooKey", "BazKey")
'cust_att_name -> "cust_att_value"
)
aListOfDirectors
需要包含一个 (String, String)
元组。但是解决这个问题其实很简单,只需要将代码更改为:@select(
field = filmeForm("Director"),
options = aListOfDirectors.map(director => director.id.toString -> director.name)
)
aListOfDirectors
是一个Seq [Director]
。
views.html.helper
包中有几个输入帮助程序。”之后,我查看了play scaladocs,然后导航到views.html.helper
包。在那里,您可以找到@select
的文档。
我知道当人们说“阅读文档”时,有时会听起来很严厉,但是考虑到框架/软件/库的开发人员(真正了解框架/软件/库)花费了他们的时间来解释如何使用框架/软件/库,我们肯定可以花一些时间阅读文档。