我在表单中有一个多项选择项。根据 Play Framework 的文档,我需要“重复值”以使所有选定的选项都适合我的数据结构的 List[String] 属性。
case class MyFormData (
fq_cset: Option[List[String]]
)
val myForm: Form[MyFormData] = Form(
mapping(
"fq_cset" -> optional(list(text))
)
)(MyFormData.apply _)(MyFormData.unapply _)
我引用 Play 的文档:
当您使用这样的重复数据时,浏览器发送的表单值必须命名为 emails[0]、emails[1]、emails[2] 等。
我无法弄清楚如何命名上述值。我试图创建一个像这样的选择元素
<select name="fq_cset">
<option name="fq_cset[0]" value="A" selected="selected">Value A</option>
<option name="fq_cset[1]" value="B" >Value B</option>
<option name="fq_cset[2]" value="C" selected="selected">Value C</option>
<option name="fq_cset[3]" value="D" >Value D</option>
</select>
但在提交表单后,我在 URL 中看到
/path?fq_cset=A&fq_cset=C
代替
/path?fq_cset[0]=A&fq_cset[2]=C
没有括在方括号中的索引会阻止正确绑定 MyFormData 类中名为 fq_cset 的 List[String] 属性中的参数。
我怎样才能让它正常工作?这是获得我需要的东西的正确方法还是我误解了文档?