1

Lift Web フレームワークを使用しています。

オートコンプリート テキスト ボックスを実装しています。ボックスに値を入力すると、ドロップダウン リストが開きます。そのリストから値を選択した場合にのみ、テキスト ボックスの値にアクセスできます。自分で値を書くと、空の値が得られます。

私のコード:

var friend_name=""
"#bdayReminder" #> AutoComplete("",
        getAllName _,
        value => takeAction(value),
        List("minChars" -> "3"))


  private def takeAction(str: String) {
    friend_name = str

  }

解決策を提案してください

4

1 に答える 1

2

免責事項: 私は次のライブラリの作成者です。

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
于 2013-03-19T08:28:22.010 に答える