2

我正在尝试处理升降框架工作中的表格。我的表单有一个复选框和单选按钮。我如何检查复选框是否被选中以及选中的单选按钮。我用来获取其他元素值的以下代码。

风景:

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

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

4

2 回答 2

1

使用SHtml.checkbox,SHtml.radio

顺便说一句,我认为<input>-s应该是。SHtml.text所以,它们不是按钮——它们是输入。不要忘记使用 firebug 检查网页中生成的 html。(您会看到使用已input=text删除的当前代码。)

于 2013-04-08T14:01:02.047 回答
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.ajaxRadioSHtml.checkboxSHtml.ajaxCheckbox

我相信你也可以SHtml.onSubmit像上面那样使用复选框和收音机,但我必须做一些测试才能弄清楚到底是怎么做的。

关于单选按钮,如果需要,您可以在此处找到有关更改标签输出方式的一些信息:https ://groups.google.com/forum/?fromgroups=#!topic/liftweb/rowpmIDbQAE

于 2013-04-08T22:59:25.970 回答