0

我有一个带有 Rails 3.1 的简​​单搜索表单,而不是提交按钮,我想要一个放大镜图像,当您单击它时,它是一个用于在文本框 (text_field_tag) 内提交表单的链接。一个例子是在 Firefox 浏览器中,所有搜索引擎的输入框。我试着用谷歌搜索如何做到这一点没有成功。到目前为止,我有这个:

 = form_tag("/search", :method => "get", :class => "search-forum") do
  = label_tag "Search for:"
  = text_field_tag :search
  = submit_tag "Search", :class => "search-submit"

实现这一目标的最佳方法是什么?

4

1 回答 1

1

不知道我理解的好不好,告诉我是不是你要找的。

您希望通过单击文本字段内的图像或其他元素来执行提交,而不是使用提交按钮。要实现这一点,您可以使用 jquery 和 ajax 使用不显眼的 javascript,在这种情况下,您不需要表单:

假设这是您为 text_field 拥有的 html

<input id="search_bar" type="text" placeholder="Search..." name="q">
<span class="search-image"></span>

现在要执行搜索,您需要的是这样的(在 js 文件中):

$(document).ready(function() {
$(".search-image").click(function(){
  var query = $('#search_bar').val() # Get the text on the text field
  $.get('/route?q=' + query, function(data){
    #Perform some actions with the data returned by the server
    $('#some_container').html(data)
  }).success(function(){
     #Here you can perform other actions if the request is successful
     alert('successful request')
  }).error(function{
    #In case the request fail
    alert('request failed')
  })
});
}
于 2013-02-27T02:56:40.150 回答