3

私は次のような独自のフィールドコンストラクターを作成しました。

@(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またはoptional(email)フォームで定義されている場合、同じ制約constraint.emailが使用されます。

では、フィールドコンストラクターの違いを見つけて、必要な電子メールフィールドにのみスターを追加するにはどうすればよいですか?

4

1 に答える 1

1

特に電子メールの場合:

次のように、フォームマッピングでメールアドレスを定義できます。

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

"email" -> email.verifying(nonEmpty)

これにより、期待する制約が追加されます: "constraint.required"

于 2014-08-05T14:08:57.623 に答える