Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

AutoCompleteといっても

実は2タイプあって・・・・。

Text版

まーふつーによくあるAutoCompleteです。

  • Fieldに値を入れると補った値をFieldにセット
  • サーバーから送られてくるデータは単一のList

という当たり前の実装です。
ここから相違点。
submitされるデータはTextFieldの値です。

ComboBox版

上記に対しLabel、Valueと別々の値を取るタイプ。

  • Fieldに値を入れると補った値をLabelとしてセット
  • サーバーから送られてくるデータはLabel、ValueがセットのDictionary形式

ここから相違点。
その後submitされるデータはLabelに対応したValueの値です。

まー当たり前のごとくAutoComplete後のデータは再度送信するわけです。
例えば商品名のAutoCompleteを考えると「商品名を補うのはいいけど次に商品名でデータが飛んできても困る」といったケースがあるのかなあと。
選んだ商品名のPKが送信されてくる方がその後の処理は正直楽だったりする。
ComboBox版だと「補われる表示用データ」と「送信するデータ」をそれぞれ持ち易いように持てるので使い勝手が良い。
ComboBox版でもLabel、Valueと同じ値を入れればText版と同じように扱うことができる。
ちゅーわけで個人的におすすめなのはComboBox版かなと。
今のところこのような実装になってるのがdojoのComboBoxなんだけどその他にあるのかなあ?
うくく。