加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala lift框架,提交多个值的ajax表单?

发布时间:2020-12-16 18:58:32 所属栏目:安全 来源:网络整理
导读:我刚刚开始使用lift,我现在正在尝试将普通表单更改为ajax表单,但是从不调用processEntryAdd方法. def addUser(xhtml : Group) : NodeSeq = { var firstName = "" var lastName = "" def processEntryAdd() { Log.info("processEntryAdd: " + firstName + ","
我刚刚开始使用lift,我现在正在尝试将普通表单更改为ajax表单,但是从不调用processEntryAdd方法.

def addUser(xhtml : Group) : NodeSeq = {

    var firstName = ""
    var lastName = ""

    def processEntryAdd() {
        Log.info("processEntryAdd: " + firstName + "," + lastName)
    }

    SHtml.ajaxForm(
        bind("entry",xhtml,"firstName" -> SHtml.text(firstName,(x) => {
                     Log.info("Setting firstName to " + x); 
                     firstName = x
                 }),"lastName" -> SHtml.text(lastName,(x) => {
                     Log.info("Setting lastName to " + x); 
                     lastName = x
                 }),"submit" -> SHtml.submit("Add user",processEntryAdd),))
}

任何想法如何实现我想要做的,或为什么上面的代码不起作用.
按下按钮时会提交两个表单字段的值,并且设置了两个局部变量fi??rstName和lastName,但未调用与SHtml.submit关联的函数.

谢谢!

解决方法

这个问题有点陈旧,但我最近需要自己知道,这是我迄今为止看到的最佳解决方案:

ajaxForm(
    bind("entry","firstName" -> text(firstName,firstName = _),"lastName" -> text(lastName,lastName = _),"submit" -> submit("Add user",processEntryAdd _),) ++ hidden(processEntryAdd _)
)

通过将处理添加到隐藏表单元素,您可以保留提交按钮,而无需更改任何视图代码.

您可以通过让processEntryAdd()返回JsCmd来添加客户端行为:

def processEntryAdd() {
    Log.info("processEntryAdd: " + firstName + "," + lastName)
    JsRaw("alert('process entry added')")
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读