传递变量形成ruby到javascript

时间:2012-06-22 22:18:50

标签: javascript ruby-on-rails ruby

我正在尝试从搜索提示中选择值用户并将其传递给javascript。 在我的搜索控制器中,它存储在@result中。 然后我找到了我需要的东西(params [:query_id]

希望通过添加他们的选择来提示未签名的用户。 尝试了一个简单的方法 -

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

但收到此错误消息:     ReferenceError:找不到变量:getElementById

试图从ruby数组中获取此变量:

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

但它返回null

按照建议添加searh控制器的代码:

def index     respond_to do | format |       format.html {render:text =&gt; “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

2 个答案:

答案 0 :(得分:2)

getElementById未在全局对象中定义。它是document的属性。

尝试:

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

答案 1 :(得分:1)

Rails附带jQuery所以为什么不使用它呢?

我认为这就是你想要的。

$('query').val()

但是你应该跳转到你浏览器中渲染的html,检查你想要选择的节点是否为名称查询(我认为它是rails做什么或id查询,你认为它是