免責事項: 私は次のライブラリの作成者です。
lift-comboboxは、ユーザーがオンザフライで値を作成できる機能を備えているため、目的を達成できると思います。select2 jQuery プラグインを使用しているため、ドロップダウン メニューの見栄えが良くなります。
たとえば、ユーザーが作成した値を取得する必要がある場合は、単に次のようになります。通常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