我根据http://simply.liftweb.net/index-4.2.html#toc-Section-4.2中的示例获得了一个表单,我想知道是否有一种方法可以在页面上设置一个按钮,每次单击时都会添加一个textarea,然后在电梯代码中把它作为一个字符串数组。
我想象的是这样的事情:
<form class="lift:OnSubmit?form=post">
Name: <input name="name"><br>
Age: <input name="age" value="0"><br>
<span id="somecomments"></span>
<input type="button" onclick="$('#somecomments').append($('<textarea cols=80 rows=10 name=comments>'))" value="Add Comment"/>
<input type="submit" value="Submit">
</form>
//in scala:
object OnSubmit {
def render = {
var name = ""
var age = 0
var comments = List("")
def process() {
S.notice("Name: "+name)
S.notice("Age: "+age)
S.notice(comments)
S.redirectTo("/")
}
}
"name=name" #> SHtml.onSubmit(name = _) &
"name=age" #> SHtml.onSubmit(s => asInt(s).foreach(age = _)) &
"name=comments" #> SHtml.onSubmit(comments = _) &
"type=submit" #> SHtml.onSubmitUnit(process)
}
}
但是我得到编译错误,注释字段是一个字符串,所以我不能将它分配给带有“name = comments”的列表#&gt; SHtml.onSubmit(comments = _)
使此代码有效的最佳方法是什么?
答案 0 :(得分:0)
用于前置:
"name=comments" #> SHtml.onSubmit(comments ::= _)
追加:
"name=comments" #> SHtml.onSubmit(comments :+= _)
答案 1 :(得分:0)
这里我将介绍如何添加任意数量的字段(我有一个textarea和一个“相关的”数字字段。
使用jQuery添加它们,然后Lift将所有数据作为json对象获取。