我想显示一个HTML复选框,然后右边的标签。覆盖播放2.1复选框表单助手的Twitter引导
我跟着Pere Villega's suggestion,并修改Play 2.1-SNAPSHOT版本views.helper.checkbox.scala
为views.helper.twitterCheckbox.scala
。我的项目使用由Webjars提供的Twitter的引导版本:
@**
* 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>
teemoo,你想显示你的文件的名称?这将帮助其他人按照建议尝试添加代码 –
@MikeSlinn文件名,以及隐式调用。我希望你能够使它工作。 – teemoo
有用的文件名,谢谢。一旦你看到它们,有时很明显,但是很清楚。 – wwkudu