gpt4 book ai didi

ajax - Lift 框架中的动态绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 13:06:20 25 4
gpt4 key购买 nike

我是 Lift 的新手,我有一个关于在 Lift 中使用绑定(bind)、Ajax 的问题。

我想使用 Ajax 以动态方式创建三个下拉菜单。我以“地址”为例来描述我想要实现的目标。首先,我只需要显示默认设置为“无”的“国家/地区”菜单。此时用户可以选择是否提交,地址默认。如果没有,她可以提供准确的地址。选择国家后,应显示“州”菜单,选择“州”后,应显示“县”菜单。

借助电梯演示示例,我尝试创建如下静态菜单。我创建了三个片段 <select:country/>, <select:state/>, <select:county/>在我的 .html 文件和 Scala 代码中,我按如下方式绑定(bind):

bind("select", xhtml,
"system" -> select(Address.countries.map(s => (s,s)),
Full(country), s => country = s, "onchange" -> ajaxCall(JE.JsRaw("this.value"),s => After(200, replaceCounty(s))).toJsCmd),
"state" -> stateChoice(country) % ("id" -> "state_select"),
"county" -> countyChoice(state) % ("id" -> "county_select"),
"submit" -> submit(?("Go!"),()=>Log.info("Country: "+country+" State: "+state + " County: "+ county)

对应的replaceCounty、stateChoice、countyChoice都在我的类中定义。 However, when the country is selected, only the state is refreshed through Ajax call and not the county.

Q1)有没有办法根据国家菜单刷新两个菜单?

Q2) 如何像我之前解释的那样动态创建菜单?

最佳答案

有一个优秀的示例代码可以做到这一点:

http://demo.liftweb.net/ajax-form

如果您想通过 AJAX 更新来更新多个下拉菜单,您需要返回如下内容:

ReplaceOptions(...) & ReplaceOptions(...)

关于ajax - Lift 框架中的动态绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2915520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com