我有一个选择标记来选择'行的数量'显示在当前表格上。
<%=select_tag :per_page, options_for_select([10,20,50,100]....some more code...., onchange => "if (this.value) {windows.location='?per_page='+(this.value);}' %>
这很好用。但是我也有一个搜索功能,它改变了当前页面的网址,即
www.url.com/blahblah&search="input"
如何使用onchange事件在第一个&#39; blah&#39;之后插入一个字符串? 因为如果我在搜索后更改显示的行数,它会完全忽略搜索参数并再次显示每个结果。
答案 0 :(得分:2)
您可以尝试使用此代码。
$(document).ready(function() {
//jquery
$(location).attr('href');
//pure javascript
var pathname = window.location.pathname;
// to show it in an alert window
alert(window.location);
});
&#13;
答案 1 :(得分:1)
所以一开始我不清楚你的问题意味着什么,但我想我明白了。在更改下拉选项时,您希望将两个参数传递到URL中。这意味着您必须检索当前URL的搜索值。您可以通过几种方式完成此操作。
例如,您可以在页面的某处包含一个隐藏的输入,其中包含搜索参数的值,例如:
<input type="hidden" value="[the search param value]" id="search_value"/>
然后使用
访问该值document.getElementById("search_value").value;
您只需将其恰当地附加到您正在构建的网址上。
另一种方法是访问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代码模板中。