我试图使用Liftweb框架将自动完成和onBlur功能附加到相同的输入字段。如何将多个片段绑定到表单中的一个输入字段
我让他们独立工作。
我想要做的是有一个自动完成的输入字段,并从建议中选择值,一些业务逻辑将被执行,另一个输入字段需要更新。
但只有自动完成功能正在工作。
这是形式
<form class="lift:CapitalOnBlur">
Country : <input id="countryNameOnBlur" type="text" name="countryNameOnBlur"/><br />
Capital: <input id="capitalNameOnBlur" type="text" name="capital"/>
</form>
这是段
object CapitalOnBlur {
val capitals: Map[String, String] = Map(
"india" -> "New Delhi",
"uganda" -> "Kampala",
"japan" -> "Tokyo")
def render = {
def callback(countryName: String): JsCmd = {
val capital = capitals.getOrElse(countryName.toLowerCase, "Not Found")
SetValById("capitalNameOnBlur", capital)
}
val default = ""
def suggest(value: String, limit: Int) = capitals.filter(_._1.startsWith(value.toLowerCase)).keys.toSeq
def submit(value: String) = Unit
"#countryNameOnBlur" #> AutoComplete(default, suggest, submit) &
"#countryNameOnBlur [onBlur]" #> SHtml.onEvent(callback)
}
}
这是我真正想做的事情。我试过这个,只有在Blur事件被触发。
根据我的需要,当我开始在第一个输入字段中输入国家名称时,它应该显示我的建议和选择建议,即: onBlur从该输入字段中,相应的资本应该在下一个输入字段中呈现。
还有一种方法可以触发采用电梯内置自动完成功能选择建议的操作。
你能发表任何相关的代码吗?你对表单的事件有何约束力?你做了什么没有奏效? – jcern
@jcern我已经编辑了这个问题。 –
我仍然不完全明白你想要做什么。你想要绑定什么事件 - “OnChange”,“OnClick”,“OnBlur”等...?我假设这两个方法都返回一个'JsCmd'?你说自动完成功能正在工作,但在本例中完全没有提及它。你期望的结果是什么? – jcern