HTMLチェックボックスの後に右側のラベルを表示したいと思います。
Pere Villegaの提案に従い、Play2.1 -SNAPSHOTバージョンをviews.helper.checkbox.scala
asに変更しましviews.helper.twitterCheckbox.scala
た。私のプロジェクトでは、Webjarsが提供するバージョンのTwitterBootstrapを使用しています。
@**
* Generate an HTML input checkbox for Twitter Bootstrap.
*
* Example:
* {{{
* @checkbox(field = myForm("done"))
* }}}
*
* @param field The form field.
* @param args Set of extra HTML attributes ('''id''' and '''label''' are 2 special arguments).
* @param handler The field constructor.
*@
@(field: play.api.data.Field, args: (Symbol,Any)*)(implicit handler: FieldConstructor, lang: play.api.i18n.Lang)
@boxValue = @{ args.toMap.get('value).getOrElse("true") }
@input(field, args:_*) { (id, name, value, htmlArgs) =>
<label class="checkbox">
<input type="checkbox" name="@name" value="@boxValue" @(
if(value == Some(boxValue)) "checked" else "") @toHtmlArgs(htmlArgs.filterKeys(_ == 'value)) />
@args.toMap.get('_text)
</label>
}
私は次のようなフォームヘルパーを使用しました:
@import helper._
@form(action = courseName.map(routes.CoursesController.update(_)).getOrElse(routes.CoursesController.save()),
args = 'class -> "form-horizontal") {
<div class="span3">
<p><b>@{if (allCourses.size>0) "" else "No "}Prerequisite Courses</b></p>
<div class="control-group">
<div class="controls">
@allCourses.map { course =>
@twitterCheckbox(field = editCourseForm(course.name))
}
</div>
</div>
</div>
}
しかし、このような出力が得られるため、チェックボックスがラベルとは別の行に表示されます。dl
出力は読みやすいようにフォーマットされています-とdd
タグに注意してください:
<form action="/courses/admin" method="POST" class="form-horizontal">
<div class="span3">
<p><b>Prerequisite Courses</b></p>
<div class="control-group">
<div class="controls">
<dl class=" " id="skus_field">
<dt><label for="skus">skus</label></dt>
<dd>
<label class="checkbox">
<input type="checkbox" name="skus" value="true" />
</label>
</dd>
</dl>
</div>
</div>
</div>
</form>
私が気付いていないある種の暗黙の振る舞いがあるようです。代わりに次のようなもの、または少なくとも望ましい結果をもたらす出力を生成するにはどうすればよいですか?
<form action="/courses/admin" method="POST" class="form-horizontal">
<div class="span3">
<p><b>Prerequisite Courses</b></p>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input name="skues" type="checkbox" value="true"> sku1
</label>
</div>
</div>
</div>
</form>