如何获得text_field rails的价值

时间:2013-07-04 11:06:14

标签: ruby-on-rails redirect textfield

我有一个文字字段:

<%= text_field :search, :class=>'input-xxlarge search-query',:id=>'keyword' %>

然后点击链接我要将此文本字段中的值传递给a 控制器方法。 我不想使用表单和表单提交。

我的链接为:

<a href ="/home/search" >GO</a>

和这个'搜索'方法我想传递文本字段值.... 还可以直接进入“/ home / search”页面,专门针对此动作“搜索”

我该怎么办? 谢谢......

3 个答案:

答案 0 :(得分:2)

请阅读link_to send parameters along with the url and grab them on target page

<%= link_to "Go", '/home/search?param1=value' %>

因此,如果您不使用表单,则应使用jQuery将字段的值放入带有参数的属性链接(href)中。 jsffidle

上的示例
<%= text_field :search, :class=>'input-xxlarge search-query',:id=>'keyword' %>
<%= link_to "Go", '', :id => "searchlink" %>


$(':input').bind('keypress keydown keyup change',function(){
    var word = $(':input[id="keyword"]').val();
    $('a[id="searchlink"]').attr("href","/home/search?param1=" + word.toString());

});

并在控制器中:

if params[:param1] == ""
 render :search # or redirect whatever do you want 
else
  param = params[:param1]
  ....
end

答案 1 :(得分:1)

在您的路线文件

resources :home do
    member do
        get 'search'
    end
end

在你的HTML中

<div id='parentDiv'>
    <%= text_field :search, nil, :class=>'input-xxlarge search-query',:id=>'keyword' %>
    <%= link_to("GO", '#', :class => 'search-link')
</div>

在javascript文件中

$(document).ready(function(){
 $('div#parentDiv').on('click', '.search-link', function(){
  var search_val = $('#keyword').val().trim();
  if(search_val != ''){
    window.location.href='/home/'+search_val+'/search';
  } else{
    alert('You need to enter some data');
  }
 });
});

并在您的搜索操作中

def search
  search_value = params[:id]
  # your code goes here.
end

答案 2 :(得分:0)

尝试这样的事情......(未经测试)。这将为您提供逻辑。

<%= link_to "Go", "#", onclick: "window.location = \"www.sitename.com/home/search?q=\"+$(\"#keyword\").val()" %>