如何在渲染时预先填充表单输入字段。
我想要实现的是显示预先填充了输入字段的表单。该值将动态填充。
这是我的表格
<form class="lift:Expense.add?form=post">
Date: <input type="text" id="date" name="date" /><br />
Amount: <input type="text" name="amount" /><br />
Towards: <input type="text" name="towards" /><br />
<input type="submit" value="Add" />
</form>
这是相应的代码段
def add = {
var dateParam = ""
var amount: Int = 0
var towards: String = ""
def process() {
S.redirectTo("/")
}
"name=date" #> SHtml.onSubmit(dateParam = _) &
"name=amount" #> SHtml.onSubmit(value => asInt(value).foreach(amount = _)) &
"name=towards" #> SHtml.onSubmit(towards = _) &
"type=submit" #> SHtml.onSubmitUnit(process)
}
我想要的是将服务器日期设置为日期输入字段,并在提交表单时保存它。目前我的问题是如何显示日期。
答案 0 :(得分:3)
有两种方法可以做到这一点。第一种是独立设置每个属性,如下所示:
"name=amount" #> SHtml.onSubmit(value => asInt(value).foreach(amount = _)) &
"name=amount [value]" #> amount
另一种方法是使用Lift组件替换整个输入。类似的东西:
"name=amount" #> SHtml.text(amount, value => asInt(value).foreach(amount = _))
两种方法的区别在于,在第一种方法中,您只是向模板中的元素添加特定属性。在第二个中,您将使用Lift创建的input type="text"
替换整个元素。