呈现我的复选框的HTML包含所有这些奇怪的HTML?
<dl class=" " id="unSubscribe_field">
<dt><label for="unSubscribe">unSubscribe</label></dt>
<dd>
<input type="checkbox" name="unSubscribe" id="unSubscribe" >
</dd>
<dd class="info">format.boolean</dd>
</dl>
我只是想在屏幕上显示一个简单的复选框,我不需要所有这些标签和dd
标签。
我甚至使用自定义方式呈现标记:
@helper.input(form("unSubscribe")) { (id, name, value, args) =>
<input type="checkbox" name="@name" id="@id" >
}
我的案例类是:
case class SubscriptionManageForm(token: Option[String], unSubscribe: Boolean)
如何显示简单的输入复选框标记?以下是当前裁员的屏幕截图:
答案 0 :(得分:2)
模板使用的是默认FieldConstructor
,因为您没有将自己的FieldConstructor
指定为隐式值。
要编写自己的字段构造函数,首先要编写一个名为myFieldConstructor.scala.html
的模板,其中包含以下行:
@(elements: helper.FieldElements)
@elements.input
然后,在视图模板中,为FieldConstructor内联设置隐式值:
@import helper._
@implicitField = @{ FieldConstructor(myFieldConstructor.f) }
@helper.input(form("unSubscribe")) { (id, name, value, args) =>
<input type="checkbox" name="@name" id="@id" >
}
模板将使用您的自定义字段构造函数来呈现输入文本,如myFieldConstructor.scala.html
中所述。
此处提供更多信息:https://www.playframework.com/documentation/2.5.x/ScalaCustomFieldConstructors
答案 1 :(得分:1)
“我只是想在屏幕上显示一个简单的复选框。”如果您不想使用模板,可以创建一个简单的复选框。
<label>
Unsubscribe? <input type="checkbox" id="test1" name="test1">
</label>
or iterating over server items...
@for(item <- model.getItems()) {
<label>
@item.labelText <input type="checkbox" name="@item.name" id="@item.id">
</label>
}
我的观点是,你可以保持尽可能简单。如果Play模板添加了混淆,那么使用基本HTML保持简单。