免責聲明:我下面庫的作者。
我認爲lift-combobox可以實現你想要的,因爲它具有讓用戶即時創建值的功能。它使用jQuery插件select2,所以你將會在下拉菜單中看到漂亮的外觀。
例如,如果您需要獲取用戶創建的值,它將簡單地如下所示,請注意,我們通常使用Option[T]
來表示該值可能不會顯示,例如,用戶可能未選擇任何項目在下拉菜單中:
var friend_name: Option[String] = None
val friendsMenu = new ComboBox(
default = None,
allowCreate = true
) {
// This is where you build your combox suggestion
override def onSearching(term: String): List[ComboItem] = {
val names = List(
ComboItem("f1", "Brian"), ComboItem("f2", "Alice"),
ComboItem("f3", "Luke"), ComboItem("f4", "Smith"),
ComboItem("f5", "Brandon")
)
names.filter(_.text.contains(term))
}
override def onItemSelected(selected: Option[ComboItem]): JsCmd = {
friend_name = selected
// The returned JsCmd will be executed on client side.
Alert("You selected:" + selected)
}
// What you want to do if user added an item that
// does not exist when allowCreate = true.
override def onItemAdded(text: String): JsCmd = {
friend_name = Some(text)
}
}
"#bdayReminder" #> friendsMenu.combobox