Scala模板将样式应用于inputText的标签[Play 2 HTML5 helper tag]

时间:2013-05-17 09:46:11

标签: playframework playframework-2.0 scala-template

我正在使用scala模板和输入助手。

我使用的class属性为<input>标记应用样式。

如何应用特定于生成的<label>代码的样式?

@inputText(orderItem("item1"),'_label -> "Product*",'_class -> "tinytfss")

提前感谢您的支持。 Manoj

2 个答案:

答案 0 :(得分:8)

您可以尝试抛弃内置字段构造函数,而不是write your own。以下模板接受控制标签样式的自定义参数:

应用/视图/ _my_field_constructor.scala.html

@(element: helper.FieldElements)

<div class="clearfix @if(element.hasErrors){error}">
  <label for="@element.id" class="@element.args.get('_label_class)">@element.label</label>
  <div class="input">
    @element.input
  </div>
</div>

现在使用您的新字段构造函数,而不是之前使用的任何内置构造函数:

应用/视图/ form.scala.html

....
@* implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.f) } *@
@implicitField = @{ FieldConstructor(_my_field_constructor.f) }
....

当调用辅助函数来创建输入文本字段时,您现在可以传入模板将选择的自定义_label_class参数:

应用/视图/ form.scala.html

@inputText(orderItem("item1"), '_label -> "Product", '_label_class -> "red", '_class -> "tinytfss")

答案 1 :(得分:0)

我自己遇到了这个问题,但是我能够在不使用自定义FieldConstructor的情况下解决它。我所做的就是更改表单帮助行以包含表单ID,然后在css中引用该表单的标签。像这样:

scala模板文件:

    <style>
        #new-tenant-form label {
            font-weight: bold;
        }
    </style>

. . .

    @helper.form(routes.Tenants.create(), 'id -> "new-tenant-form") {
           . . .