window.location.href 不工作

Posted

技术标签:

【中文标题】window.location.href 不工作【英文标题】:window.location.href not working 【发布时间】:2013-08-20 11:24:05 【问题描述】:

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

我正在使用基于此的 window.location.href:How to redirect to another webpage in javascript/jQuery?

javascript

$("#search_text").submit(function() 
    if ($("#search_field").val() == "a")
    
        window.location.href = "http://***.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 语句中的内容应该正在执行。但它把我带到了正常的搜索结果而不是 ***.com。这是为什么呢?

【问题讨论】:

我看到我投了反对票。你能告诉我为什么吗?乍一看,我认为这个问题没有任何问题。 我没有否决这个问题,但至少,您应该显示表单的 html 好的,我会编辑问题。 window.location() not working, not opening page的可能重复 显示生成的 HTML,而不是 Ruby 代码。 【参考方案1】:

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

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

【讨论】:

谢谢你,你是对的,它成功了。这里也解决了这个问题 (***.com/questions/6094130/…)。在我问这个问题之前我没有意识到这一点。 你刚刚救了我的命。 但是如果我返回false,提交功能就没有用了。【参考方案2】:

试试这个

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

或者你可以这样做

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

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

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

【讨论】:

我可以知道我投反对票的原因吗? @亚当泽纳 你在得到那些反对票很久之后才添加了正确的答案(返回 false)。 @Juhana 正在编辑我的答案,同时得到了那些反对票。但是在投反对票之前添加评论是否有意义,因为这些反对票会让我想现在就回答任何问题 如果它让你在回答之前思考......任务完成。 @ArihantGodha:给出错误或错误的答案会使答案被否决。稍后对其进行编辑,使其说明另一个答案已经说过的内容(有意或无意)不会扭转这种情况。当您编辑您的答案使其成为另一个答案的副本时,请将其删除。【参考方案3】:

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

Wrong:"http:\\***.com"

Right:"http://***.com"

【讨论】:

【参考方案4】:

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

setTimeout(function()document.location.href = "index.php",500);

【讨论】:

以上是关于window.location.href 不工作的主要内容,如果未能解决你的问题,请参考以下文章

Jquerydirtyforms 在 DIV click 和 window.location.href 上无法正常工作

为啥window.location.href无效,页面不跳转

不经验证直接使用 window.location.href 是不是安全

window.location.href 放置在单独的JS文件中使用时问题

react中为啥不window.location.href来跳转,还要用react-router来跳转

TypeError:未定义不是对象(评估“window.location.href”)