具有约束的自定义字段构造函数

时间:2013-02-19 09:26:20

标签: scala playframework-2.0

我编写了自己的字段构造函数,如下所示:

@(elements: helper.FieldElements)

@*****************************************************
* Generate input according to Twitter Bootsrap rules *
******************************************************@
<div class="control-group @if(elements.hasErrors) {error}">
    <label class="control-label" for="@elements.id">@elements.label @if(elements.field.constraints.map(c => c._1).contains("constraint.required")) {*}</label>
    <div class="controls">
        @elements.input
        <span class="help-inline">@elements.errors(elements.lang).mkString(", ")</span>
        <span class="help-block">@elements.infos(elements.lang).mkString(", ")</span>
    </div>
</div>

我们的想法是在所需元素的标签后添加星号*

它适用于在表单定义中具有nonEmptyText映射的字段,但我主要关注的是对所需的电子邮件字段执行相同操作:可以将字段定义为email或{{ 1}}在表单中,使用相同的约束optional(email)

那么我怎样才能找到我的字段构造函数中的差异并将星号仅添加到所需的电子邮件字段?

1 个答案:

答案 0 :(得分:1)

专门针对电子邮件:

您可以在表单映射中定义您的电子邮件地址,如下所示:

import play.api.data.Forms.email
import play.api.data.validation.Constraints.nonEmpty

"email" -> email.verifying(nonEmpty)

这将添加您期望的约束:“constraint.required”