window.location.href不起作用

我的网站是http://www.collegeanswerz.com/ 。 我正在使用rails。 该代码用于搜索大学。 我希望用户能够输入学院名称,单击输入,然后转到url,而不是查看搜索结果(如果用户正确输入名称。如果不是,我想显示搜索结果) 。 我正在使用“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'); } }); 

布局文件

  'get', :id => 'search_text', :class => 'form_search') do -%>   

static_pages_controller.rb

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

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

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

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

试试这个

 `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"; 

并在函数调用结束时添加一个返回false

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

 Wrong:"http:\\stackoverflow.com" Right:"http://stackoverflow.com" 

HTML5引入了history.pushState()和history.replaceState()方法,允许您分别添加和修改历史条目。 据我所知,您可以使用pushState函数,如下面的代码来解决您的问题。

history.pushState(null,null,“ http://stackoverflow.com ”) 此处提供了有关处理这类问题的HTML5新function的更多信息。