【问题标题】:Pre-Populating form data using liftweb使用 liftweb 预填充表单数据
【发布时间】:2014-04-05 23:53:26
【问题描述】:

如何在呈现表单输入字段时预先填充它。

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

这是我的表格

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

这是对应的sn-p

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

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

【问题讨论】:

  • 得到了解决方案,想知道这是否是完成它的唯一方法。这就是我所做的,添加了这一行"name=date [value]" #&gt; "Date"这将设置输入字段的值与日期, 可以随意更改。

标签: forms scala lift


【解决方案1】:

有两种方法可以做到这一点。第一种是独立设置每个属性,像这样:

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

【讨论】:

  • 感谢您的及时回复。那么第二种方式也会绑定 onSubmit 功能呢?
  • 通过尝试得到答案。非常感谢。
猜你喜欢
  • 2012-08-14
  • 1970-01-01
  • 2018-01-06
  • 2016-07-24
  • 1970-01-01
  • 2018-08-15
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多