У меня есть форма на основе образца в http://simply.liftweb.net/index-4.2.html#toc-Section-4.2, и мне было интересно, есть ли способ иметь кнопку на странице, которая бы добавляла текстовую область при каждом нажатии, а затем в лифте код получить его в виде массива строк.
То, что я изображаю, выглядит примерно так:
<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» #> SHtml.onSubmit (comments = _)
Какой лучший способ заставить этот код работать?