我正在尝试处理升降机框架工作中的表格。我的表单有一个复选框和单选按钮。我怎么能检查是否选中了复选框和选中的单选按钮。以下代码用于获取其他元素值。
观点:
<form class="lift:MySnippet?form=post">
From:<input type="text" name="source" /><br />
To: <input type="text" name="destination" /><br />
Age: <input type="text" name = "age"/><br />
Return: <input type="checkbox" name="needreturn" value="Return Ticket" /><br />
<input type="radio" name="sex" value="male" />Male<br />
<input type="radio" name="sex" value="male" />Female<br />
<input type="submit" value="Book Ticket"/>
</form>
和MySnippet scala代码是:
object MySnippet {
def render = {
var from = ""
var to = ""
var age = 0
def process() {
S.notice("in process function")
}
"name=source" #> SHtml.onSubmit(from = _) &
"name=destination" #> SHtml.onSubmit(to = _) &
"name=age" #> SHtml.onSubmit(s => asInt(s).foreach(age = _)) &
"type=submit" #> SHtml.onSubmitUnit(process)
}
}
在这个如何处理复选框和单选按钮。任何人都可以提前帮助我...
答案 0 :(得分:1)
使用SHtml.checkbox
,SHtml.radio
顺便说一下,我认为<input>-s
应该是SHtml.text
。所以,他们不是纽扣 - 他们是投入。不要忘记使用firebug在网页中检查生成的html。 (您会看到使用已删除input=text
的当前代码。)
答案 1 :(得分:1)
您是否需要在HTML中指定选项?如果没有,最简单的方法是:
Return: <input type="checkbox" name="needreturn" /><br />
Sex: <input type="radio" name="sex" />
和CSS转换:
val radioChoices = List("male", "female")
var sex:Box[String] = None
var needReturn:Boolean = false
"@sex" #> SHtml.radio(radioChoices, sex, (resp) => sex = Full(resp)) &
"@needreturn" #> SHtml.checkbox(needReturn, (resp) => needReturn = resp)
如果您希望每次更改值时将选择发送到服务器,而不是在以下情况下,您可以将SHtml.radio
替换为SHtml.ajaxRadio
,将SHtml.checkbox
替换为SHtml.ajaxCheckbox
表格已提交
我相信您也可以像上面那样使用SHtml.onSubmit
复选框和广播,但我必须做一些测试才能弄清楚具体如何。
关于单选按钮,如果需要,您可以找到有关更改标签输出方式的一些信息:https://groups.google.com/forum/?fromgroups=#!topic/liftweb/rowpmIDbQAE