Scala 在lift中将textareas客户端动态添加到表单
我得到了一个基于中示例的表单,我想知道是否有一种方法,在页面上有一个按钮,每次单击该按钮时都会添加一个文本区域,然后在提升代码中以字符串数组的形式获得它 我所描绘的是这样的:Scala 在lift中将textareas客户端动态添加到表单,scala,lift,Scala,Lift,我得到了一个基于中示例的表单,我想知道是否有一种方法,在页面上有一个按钮,每次单击该按钮时都会添加一个文本区域,然后在提升代码中以字符串数组的形式获得它 我所描绘的是这样的: <form class="lift:OnSubmit?form=post"> Name: <input name="name"><br> Age: <input name="age" value="0"><br> <span id="somecomm
<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)
}
}
名称:
年龄:
//在scala中:
提交对象{
def呈现={
var name=“”
变量年龄=0
var注释=列表(“”)
def进程(){
美国公告(“名称:”+名称)
美国公告(“年龄:+年龄)
美国公告(评论)
美国重定向至(“/”)
}
}
“name=name”#>SHtml.onSubmit(name=#)&
“name=age”#>SHtml.onSubmit(s=>asInt.foreach(age=#))&
“name=comments”#>SHtml.onSubmit(comments=#)&
“type=submit”#>SHtml.onSubmitUnit(进程)
}
}
但是我得到了一个编译错误,即comments字段是一个字符串,因此我不能将它分配给一个带有“name=comments”#>SHtml.onSubmit(comments=#)的列表
使此代码工作的最佳方法是什么?有关预结束:
"name=comments" #> SHtml.onSubmit(comments ::= _)
用于附加:
"name=comments" #> SHtml.onSubmit(comments :+= _)
预编:
"name=comments" #> SHtml.onSubmit(comments ::= _)
用于附加:
"name=comments" #> SHtml.onSubmit(comments :+= _)
这里我描述了如何添加任意数量的字段(我有一个textarea和一个“相关”的数字字段) 使用jQuery添加它们,然后Lift将所有数据作为json对象获取
这里我介绍如何添加任意数量的字段(我有一个文本区域和一个“相关”数字字段) 使用jQuery添加它们,然后Lift将所有数据作为json对象获取
如果我将HTML更改为具有多个名为“comments”的文本区域,则该功能有效,但对于javascript动态添加的字段无效。我希望能够多次点击按钮并添加所有新文本区域,如果我将HTML更改为具有多个名为“comments”的文本区域,则该功能有效,但它不适用于javascript动态添加的字段。我希望能够多次点击按钮并添加所有新的文本区域。你知道怎么做吗?我正在寻找“正确的方法”做同样的事情,我正在努力想出一种非黑客式的方法来做。你有没有想过怎么做?我在寻找“正确的方法”做同样的事情,我正在努力想出一种非黑客式的方法来做。