2017-07-01 42 views
0

我需要使用jquery更新下拉更改事件的URL参数。当我在URL中获得单个参数时,得到的代码效果很好,但是当我有很多参数时,在这种情况下,国家将被删除。用JQUERY更改URL的一部分

下面的代码:

$('#state-input').change(function() { 

     var hrefElement = $("#municipality-input"); 
     var href = hrefElement.data('autocomplete-url'); 

     href = href.replace(/(stateId=)[A-Z].+/ig, '$1' + $(this).val()); 
     hrefElement.attr('data-autocomplete-url', href); 
}); 

在页面加载的网址:

数据自动完成-URL = “/ SKU/GetCities STATEID = QC & countryId = CA”

关于变更事件

数据自动完成-URL = “/ SKU/GetCities STATEID = NB?”

我想要什么?

数据自动完成-URL =“/ SKU/GetCities STATEID = NB & countryId = CA“

有没有办法让我的国家的代码稍微有点变化?

谢谢

+0

检查插件这里建议:https://stackoverflow.com/a/1090966/259881 –

回答

1

当您更换正则表达式时,您会忘记第二部分。 也许你需要这样做:

href = href.replace(/(stateId=)[A-Z]+(.*)/ig, '$1' + $(this).val() + '$2'); 

那么结果将是:

$('#state-input').change(function() { 

     var hrefElement = $("#municipality-input"); 
     var href = hrefElement.data('autocomplete-url'); 

     href = href.replace(/(stateId=)[A-Z]+(.*)/ig, '$1' + $(this).val() + '$2'); 
     hrefElement.attr('data-autocomplete-url', href); 
});