使用新的params js重新加载页面

时间:2017-01-25 07:00:00

标签: javascript jquery

您好我想刷新我的选择框值的更改页面将此值添加到url作为查询字符串这里是我的代码

<select name="country_id" id="country" class="validate-select" title="Country">
    <option value=""></option>
    <option value="BH">Bahrain</option>
    <option value="KW">Kuwait</option>
    <option value="OM">Oman</option>
    <option value="QA">Qatar</option>
    <option value="SA">Saudi Arabia</option>
    <option value="AE">United Arab Emirates</option>
</select>

我为此写的JS代码是

jQuery('#country').on('change', function () {
   var url = window.location.href;    
   url += '?country='+jQuery(this).val()+''
   window.location.href = url;
});

它的工作正常,但它总是添加新的参数,而不是取代之前的

  

?国家= KW?国家= QA

我想在添加新的参数和刷新页面之前删除先前的参数。

3 个答案:

答案 0 :(得分:1)

window.location.href = url替换为window.location=window.location.href + "?country=" + this.value window.location.href只是返回当前页面的href(URL),请在下面的代码段中找到并了解

要从href删除查询字符串,您可以在获取.split('?')[0]之类的网址后添加window.location.href.split('?')[0]

$(function(){
      $("#country").change(function(){
        debugger;
        window.location=window.location.href.split('?')[0] + "?country=" + this.value
      });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="country_id" id="country" class="validate-select" title="Country">
    <option value=""></option>
    <option value="BH">Bahrain</option>
    <option value="KW">Kuwait</option>
    <option value="OM">Oman</option>
    <option value="QA">Qatar</option>
    <option value="SA">Saudi Arabia</option>
    <option value="AE">United Arab Emirates</option>
</select>

答案 1 :(得分:1)

尝试使用window.location.search您可以更新参数值或添加新参数

jQuery('#country').change(function(){
    query = 'country=' + $(this).val();
    window.location.search = query;
});

答案 2 :(得分:0)

这对你有用

url+=url.split('?')[0]+jQuery(this).val()+'';

或者您也可以将您的网址var声明为url = window.location.host;