1

機能しているフォームにオートコンプリート フィールドがありますが、ユーザーにリストから値の 1 つを選択させる必要があります (オートコンプリートを使用すると、ユーザーはリストの項目に制限されません。これはテキスト フィールドであり、好きなように入力してください)。jQuery コンボボックスは、私が必要とする追加機能を追加します。その追加機能をフォームに追加するのを手伝ってくれる人はいますか? 従うことができるチュートリアルまたは例はありますか?

これが私がこれまでに持っているものです(そしてそれは機能しています - Ryan Batesに感謝します)

ビュー - new.html.erb

 <%= f.input :widget_name, input_html: { data: { autocomplete_widget_source: widgets_list_path } } %>

コントローラ

def list
  @widgets = Widget.order(:name).where("name like ?", "%#{params[:term]}%")
  render json: @widgets.map(&:name)
end

JQuery

jQuery ->
  $('#model_widget_name').autocomplete
  source: $('#model_widget_name').data('autocomplete-widget-source')

単純な collection_select を使用してみましたが、選択リストのサイズが原因でドキュメントが大きすぎます (10,000 アイテム)。

<%=  collection_select :model, :widget_id, Widget.all, :id, :name, selected: @model.widget_id  -->

前もって感謝します。

4

1 に答える 1

0

探していた答えがついに見つかったと思います。

以下を追加しました

jQuery ->
  $('#model_widget_name').bind 'autocompletechange', (event, ui) ->
    if (!ui.item)
      $(this).val(''); 

これは意味がありますか?もっと必要ですか?

以下に感謝します:

于 2012-12-23T20:34:07.930 に答える