如何使用JavaScript更改当前URL?
我有一个select标记来选择要在当前表上显示的“行”数如何使用JavaScript更改当前URL?,javascript,jquery,html,ruby-on-rails,url,Javascript,Jquery,Html,Ruby On Rails,Url,我有一个select标记来选择要在当前表上显示的“行”数 <%=select_tag :per_page, options_for_select([10,20,50,100]....some more code...., onchange => "if (this.value) {windows.location='?per_page='+(this.value);}' %> 我如何在第一个“blah”之后插入一个字符串,比如onchange事件? 因为如果我在执行搜索后更改
<%=select_tag :per_page, options_for_select([10,20,50,100]....some more code...., onchange => "if (this.value) {windows.location='?per_page='+(this.value);}' %>
我如何在第一个“blah”之后插入一个字符串,比如onchange事件?
因为如果我在执行搜索后更改显示的行数,它将完全忽略搜索参数并再次显示每个结果。您可以尝试使用此代码
$(文档).ready(函数(){
//jquery
$(location.attr('href');
//纯javascript
var pathname=window.location.pathname;
//在警报窗口中显示它
警报(窗口、位置);
});代码>所以一开始很不清楚你的问题是什么意思,但我想我明白了。在更改下拉选择时,有两个参数要传递到url中。这意味着您必须检索当前URL的搜索值。你可以通过两种方式来做到这一点
首先,您可以在页面的某个地方包含一个隐藏的输入,其中包含搜索参数的值,例如
<input type="hidden" value="[the search param value]" id="search_value"/>
您只需将其适当地附加到正在构建的url
另一种方法是访问location.search
属性,然后使用javascript中的RegExp或字符串操作方法解析url中所需的值。e、 g
var urlSearchParams = location.search.replace('?','').split('&');
var valueMap = {};
searchParams.forEach(function(a){
var kv = a.split('=');
valueMap[kv[0]] = kv[1];
});
//get the search value you want
var search = valueMap["search"];
第三种方法是检索参数并将其添加到使用rails模板系统制作的JS代码模板中。您是否尝试过location.href
?在发布后大约3分钟,我实际上已经解决了这个问题,但确实是这样,尽管最后的一些代码是不必要的:)
document.getElementById("search_value").value;
var urlSearchParams = location.search.replace('?','').split('&');
var valueMap = {};
searchParams.forEach(function(a){
var kv = a.split('=');
valueMap[kv[0]] = kv[1];
});
//get the search value you want
var search = valueMap["search"];