使用liftweb预填充表单数据

时间:2014-04-05 14:53:32

标签: forms scala lift

如何在渲染时预先填充表单输入字段。

我想要实现的是显示预先填充了输入字段的表单。该值将动态填充。

这是我的表格

<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)
}

我想要的是将服务器日期设置为日期输入字段,并在提交表单时保存它。目前我的问题是如何显示日期。

1 个答案:

答案 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"替换整个元素。