1

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>

どんな助けでも大歓迎です!

4

2 に答える 2

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>
于 2013-09-18T15:18:54.987 に答える
0

これはうまくいくようです:

JSFiddleデモ

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;
});
于 2013-09-18T15:37:12.730 に答える