1

我正在使用带有 scala 的 playframework 2.0,我在使用 @select 模板时遇到了很多问题。所以我有一个 @select 字段作为表单的一部分(表单在这里不应该很有趣):

@select(
Form("<variable of select 1>"),
options = options(<call of function which returns a list>),
'_default -> "--- stupid select templates ---",
'_error -> Form.globalError
)

现在我有另一个选择。关于这个的重要一点是 - 我想从一个函数中填充它,该函数将第一个 @select 的实际值作为参数。

 @select(
    Form("<other name of variable>"),
    options = options(<function(<variable of select 1>)>),
    '_default -> "--- stupid select templates ---",
    '_error -> Form.globalError
    )

所以我真正需要的是@select 字段的某种“onchange”事件。另一个问题是,playframework 无法读取 @select 的“'_default”值(当我设置默认值并尝试在表单中使用它时,它被计为无)

注意:两个 @selects 都在同一个 html 站点上,并且都属于同一个表单

有人知道这里的解决方法吗?或可能的例子?

4

2 回答 2

1

@adis 答案是正确的。如果您想根据刚刚选择的值动态填充下拉列表,您有两种选择:

1) 在第一次选择发生时触发表单提交并使用它来填充下一个下拉列表或 2) 使用 Javascript 和可能的 ajax 调用来动态执行此操作

第一个选项非常难看,因为它需要您重新加载并重新填充表单。这可能会导致其他与验证相关的问题,更不用说这是一个非常 90 年代的解决方案,所以我不推荐它。

像这样的东西应该会有所帮助... 根据另一个下拉列表中的选择填充一个下拉列表

于 2014-04-07T17:38:19.233 回答
1

一个default对我有用的例子,如果所有者被填满,所有者将是可见的,而不是默认值。

@select(editForm("owner.id"),options(Task.owners), 'id -> "owner", 'class -> "input-xlarge", '_label -> Messages("owner"), '_default -> Messages("make.choice"), 'showConstraints -> true, '_help -> "")

但我认为onchange服务器端模板不可能做到这一点。您将需要使用 javascript / jQuery 来执行此操作。

于 2013-03-22T23:57:39.913 回答