javascript - 在 URL 中显示两个单独的选择框值

标签 javascript jquery html select parameters

这里有两个选择框,我需要的是如果从两个框中都选择了值,则两者都应该显示在 URL 中,如下所示 例如 www.example.com#135+#140www.example.com#135&140 (只要两者都显示,这就是主要目的,以哪个顺序并不重要)

 <select name="search_region" id="search_region" class="search_region">
        <option value="0">All Regions</option>
        <option class="level-0" value="135">HTML</option>
        <option class="level-0" value="136">PHP</option>
        <option class="level-0" value="137">CSS</option>
    </select>

    <select name="search_categories" id="search_categories" class="search_categories">
        <option value="">Select Category</option>   
        <option class="level-0" value="140">Java</option>
        <option class="level-0" value="141">Script</option>
    </select>

下面是我运行的脚本,用于显示 URL 中的 #search_regions 值,到目前为止,它运行良好。现在能够添加 #search_categories 值。

<script type="text/javascript">
$(function(){
    $('#search_region').change(function () {
        var url = $(this).val();
        window.location.hash = url;
        console.log('select Changed');
    });
});
window.addEventListener('hashchange', fn, false);

window.onload = fn; // fire on pageload

function fn() {
    $('#search_region').val(window.location.hash.replace('#', ''));
    console.log("hash = " + window.location.hash);
}
 </script>

关于如何做到这一点有什么想法吗?非常感谢

这是我之前提出的问题的补充,请在下面找到链接

Getting the select value to display in a new browser

最佳答案

1.您需要应用两个选择框的更改事件。

2.您还需要将第二个选择框值添加到window.location.hash

工作片段:-

$(function(){
   var url = '';
    $('#search_region').change(function () {
        url = $(this).val();
        window.location.hash = url;
         console.log(window.location.hash);
    });
    $('#search_categories').change(function () {
       if(url !==''){
         window.location.hash = url+"&"+$(this).val();
       }
        console.log(window.location.hash);
    });
});

window.addEventListener('hashchange', fn, false);

window.onload = fn; // fire on pageload

function fn() {
    console.log("hash = " + window.location.hash);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="search_region" id="search_region" class="search_region">
        <option value="0">All Regions</option>
        <option class="level-0" value="135">HTML</option>
        <option class="level-0" value="136">PHP</option>
        <option class="level-0" value="137">CSS</option>
    </select>

    <select name="search_categories" id="search_categories" class="search_categories">
        <option value="">Select Category</option>   
        <option class="level-0" value="140">Java</option>
        <option class="level-0" value="141">Script</option>
    </select>

关于javascript - 在 URL 中显示两个单独的选择框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48577541/

相关文章:

html - 使用 CSS3 的波浪形边框

javascript - 在 JavaScript 中同时使用 String Replace 和 Regex 时如何获取捕获组的长度?

javascript - Wordpress 定制器自定义控件传输 postMessage 不起作用

javascript - 纯JS : Multiple Forms Validation with some common Fields/elements and some unique fields/elements

javascript - 追加时无法访问 jQuery

javascript - 使用ajax获取自定义404错误页面的内容

html - 带有矩形边框的CSS形状半圆对齐问题

javascript - 在打开迷你浏览器 jquery 之前检查单选按钮

javascript - 如何在 Event 对象冒泡之前将其附加到 Event 对象?

javascript - Angular.js 单元测试 "inject()"在 "run"阶段 block 之前触发