获取电梯中的复选框和单选按钮值

时间:2013-04-08 13:12:07

标签: forms scala checkbox radio-button lift

我正在尝试处理升降机框架工作中的表格。我的表单有一个复选框和单选按钮。我怎么能检查是否选中了复选框和选中的单选按钮。以下代码用于获取其他元素值。

观点:

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

在这个如何处理复选框和单选按钮。任何人都可以提前帮助我...

2 个答案:

答案 0 :(得分:1)

使用SHtml.checkboxSHtml.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