我有一个文字字段:
<%= text_field :search, :class=>'input-xxlarge search-query',:id=>'keyword' %>
然后点击链接我要将此文本字段中的值传递给a 控制器方法。 我不想使用表单和表单提交。
我的链接为:
<a href ="/home/search" >GO</a>
和这个'搜索'方法我想传递文本字段值.... 还可以直接进入“/ home / search”页面,专门针对此动作“搜索”
我该怎么办? 谢谢......
答案 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()" %>