JQuery基于HTML下拉选择在URL中查找和替换查询字符串

时间:2013-09-18 15:11:21

标签: javascript jquery html sharepoint

我想使用jquery来更改查询字符串中的特定值,方法是根据从页面上的下拉选项中选择的内容来查找和替换该值。例如:

假设我们在当前页面上有以下查询字符串:?field1 = value1& field2 = value2& archived = yes

下拉选项为:

  • 非归档
  • 已存档

如果有人选择“非存档”,则jquery函数应对当前查询字符串执行查找和替换,并将archived = yes设置为archived = no,然后刷新页面。

以下是我现在的一些代码,但它没有进行查找和替换,它只是从下拉列表中选择了什么值,然后根据下拉html中设置的选项值更改页面。

<script type="text/javascript" src="/js/jQuery.min.js"></script>

<script>
jQuery(document).ready(function(){
jQuery("#dropdown").change(function(e){
window.location.href = jQuery("#dropdown").val();
});});
</script>


<select class="dropdown" id="dropdown">
<option value="#" selected="selected">Choose Type</option>
<option value="(set archived=no)">Non-Archived</option>
<option value="(set archived=yes)">Archived</option>
</select>

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

试试这个

<强>的jQuery

jQuery(document).ready(function () {
    jQuery("#dropdown").change(function (e) {
        if (window.location.href.indexOf("archived") > -1) {
            window.location.href.replace(/(archived=yes|archived=no)/g, "archived=" + jQuery("#dropdown ").val());
        } else {
            window.location.href += "archived=" + jQuery("#dropdown ").val();
        }
    });
});

<强> HTML

<select class="dropdown" id="dropdown">
<option value="#" selected="selected">Choose Type</option>
<option value="no">Non-Archived</option>
<option value="yes">Archived</option>
</select>

答案 1 :(得分:0)

这似乎有效:

JSFiddle Demo

var href="?field1=value1&field2=value2&archived=yes";
var testUrl = $(location).attr('href');
alert('Current URL = ' + testUrl);

jQuery("#dropdown").change(function(e){
    if($("#dropdown").val() == "(set archived=no)") {
        href = href.replace("archived=yes", "archived=no");
    } else if($("#dropdown").val() == "(set archived=yes)") {
        href = href.replace("archived=no", "archived=yes");
    }
    alert(href);
    window.location.href = href;
});