2014-10-01 82 views
0

我哈瓦创建一个复选框和一个文本输入框模板动态约束:斯卡拉/ Play2 - 基于复选框值

@helper.checkbox(inputForm("live"), 'checked -> true, 'onclick -> "hideTextFields()") 
@helper.inputText(inputForm("target"), 'disabled -> true) 

当取消选中该复选框,文本字段获得可见(反之亦然)。这是在一个名为hideTextFields()的javascript函数中完成的。

现在,在控制器中,我需要一个约束条件,只要取消选中该复选框,该文本输入字段就是必需的。

我有一个映射:

"live" -> boolean 
"target" -> nonEmptyText 

但这总是需要指定目标。

如何根据复选框的状态实现文本输入字段的动态约束。 Play是版本2.3.4。

谢谢,最好的问候!

+0

愚蠢的标签...选择更好 – biesior 2014-11-02 00:07:49

回答

0

退房的验证方法是在映射,你从tuple()回来和mapping()

简单的例子:

val sample = Form(
    tuple(
    "checkbox" -> boolean, 
    "text" -> text 
).verifying(
    "If checkbox checked text cannot be empty", 
    (tuple) => !tuple._1 || tuple._2.nonEmpty) 
) 

您可以找到“定义即席约束”下另一个例子玩框架文档:The playframework docs