@(myForm: Form[FormObject])
@import helper._
@import helper.twitterBootstrap._
@main("Test") {
@form(routes.Application.save) {
@input(myForm("number"), '_label -> "Number") { (id, name, value, args) =>
@if(value.isEmpty) {
<input type="text" name="@name" id="@id" value="@value">
} else {
<input type="text" name="@name" id="@id" value="@value" disabled>
}
}
@input(myForm("startDate"), '_label -> "Start Date") { (id, name, value, args) =>
<div class="input-append date datepicker" data-date="@value" data-date-format="dd-mm-yyyy">
<input class="span2" size="16" type="text" value="@value"><span class="add-on"><i class="icon-calendar"></i></span>
</div>
}
<button type="submit" class="btn" title="Save"><i class="icon-ok"></i></button>
}
}
public class FormObject {
public String number;
public String startDate;
}
第二个问题是字段'startDate'未绑定到FormObject。
我错过了什么吗?
答案 0 :(得分:1)
首先:这是常见错误 - disabled
属性即使发送也会禁用该字段,因此甚至无法播放请求时间。请改用readonly
。 (more about disabled
vs readonly
)
@input(myForm("number"), '_label -> "Number") { (id, name, value, args) =>
<input type="text" name="@name" id="@id" value="@value" @if(!value.isEmpty){ readonly="readonly" }>
}
也许您需要使用一些CSS / JS来强调该字段是只读的,否则通常用户会将其视为错误(我无法编辑此字段而不知道为什么 )
第二:如果它真的是String
字段 - 我不知道原因。如果Date
问题是由格式更改引起的,则Play无法自动解析。在保存/更新之前,您还需要使用控制器中的给定格式解析它。