-1

検索プロンプトから選択された値のユーザーを取得し、それをjavascriptに渡そうとしています。私の検索コントローラーでは、@resultに保存されています。次に、(params [:query_id]で必要なものを見つけています。

プロンプトに選択を追加することで、署名されていないユーザーのプロンプトを少し凝ったものにしたかった。簡単な方法で試してみました-

var selected = getElementById('#query').value;

しかし、このエラーメッセージが表示されました:ReferenceError:変数が見つかりません:getElementById

ルビー配列からこの変数を取得しようとしました:

var selected= <%= @result.to_json %>;

しかし、それはnullを返します

提案されているように、searhコントローラーのコードを追加します。

def index response_to do | format | format.html {render:text => "html"}

  format.js  do
    @search = SearchItem.search{ keywords params["query"] }

    @result = []
    @search.each_hit_with_result do |hit, item|
      @result << {:name => hit.stored(:name), :id => item.id}
    end

    render :json => @result.to_json

  end

end

それから検索htmlで私は持っています

#search
  = form_tag find_from_query_entries_path, :remote => true, :id => "search_form" do
    = text_field_tag :query, nil
    = hidden_field_tag :query_id
4

2 に答える 2

2

getElementByIdグローバルオブジェクトで定義されていません。のプロパティですdocument

試す:

var selected = document.getElementById('#query').value;
于 2012-06-22T22:26:29.253 に答える
1

RailsにはjQueryが付属しているので、それを使用してみませんか?

これがあなたの望むものだと思います。

$('query').val()

ただし、ブラウザでレンダリングされたhtmlにジャンプして、名前クエリとして選択するノードかどうかを確認する必要があります(これは、railsが行うことであるか、idクエリであると思います)。

于 2012-06-22T22:57:14.243 に答える