16

我的网站是http://www.collegeanswerz.com/。我正在使用导轨。该代码用于搜索大学。我希望用户能够输入大学名称,点击回车,然后被带到网址,而不是看到搜索结果(如果用户正确输入了名称。如果不是,我想显示搜索结果) . 当我尝试让它工作时,我使用“a”和“stackoverflow.com”作为占位符。

我正在使用基于此的 window.location.href:如何在 JavaScript/jQuery 中重定向到另一个网页?

javascript

$("#search_text").submit(function() {
    if ($("#search_field").val() == "a")
    {
        window.location.href = "http://stackoverflow.com";
        alert('worked');
    }
});

布局文件

<%= form_tag("/search", :method => 'get', :id => 'search_text', :class => 'form_search') do -%> 
    <div id="search"> <%= search_field_tag :search, params[:search], :placeholder => 'enter college', :id => "search_field", :class => 'input-medium search-query' %></div> 
<% end -%>

static_pages_controller.rb

def search
  @colleges = College.search(params[:search])
end

警报正在工作,它告诉我应该执行 if 语句中的内容。但它把我带到了正常的搜索结果而不是 stackoverflow.com。为什么是这样?

4

4 回答 4

43

代码运行后,浏览器仍在提交表单。

添加return false;到处理程序以防止这种情况发生。

于 2013-08-18T15:30:05.567 回答
2

尝试这个

`var url = "http://stackoverflow.com";    
$(location).attr('href',url);`

或者你可以做这样的事情

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

并在函数调用结束时添加 return false

于 2013-08-18T15:31:11.040 回答
1

请检查您使用的是//不是\\错误的,如下所示

Wrong:"http:\\stackoverflow.com"

Right:"http://stackoverflow.com"
于 2017-08-21T14:33:58.673 回答
0

如果有人在使用后遇到问题return false;。然后使用下面的。

setTimeout(function(){document.location.href = "index.php"},500);
于 2020-05-09T01:19:53.843 回答