1

我有 2 个带有 Java 脚本的选择框。当我使用 filter1 时,我的 url 更改为 www.url.com/&filter[]=6827 这很完美,并且所选选项也可以正常工作。但我想要一个新的选择框,比如带有多个过滤器的 filter2。当我像下面这样使用它时,网址看起来像这样:www.url.com/&filter[]%3D=6727%26filter[]%3D6728

有人可以帮助解决这个问题吗?我认为它在 jquery 中...不确定。

<div class="filter1">
  <div class="title">Filter1</div>
    <form action="filter1" method="get" id="input-custom-filter1">   
     <select name="filter[]=" onchange="$('#formFilters').submit();">
     <option value="6725">Option1</option>
     <option value="6726">Option2</option>
     <option value="6727">Option3</option>
     <option value="6728">Option4</option>
     </select>
</div>   
<div class="filter2">
  <div class="title">Filter1</div>
    <form action="filter2" method="get" id="input-custom-filter2">   
     <select name="filter[]=" onchange="$('#formFilters').submit();">


     <option value="6725&filter[]=6726">Option1 & Option2</option>
     <option value="6727&filter[]=6728">Option3 & Option4</option>
         </select>
    </div> 


<script type="text/javascript">
    $(document).ready(function(){
      $('#formFilters').submit() {
            }
        });
    });
</script>
4

4 回答 4

0

该代码无法理解您通过的所有符号。我不确定您要在这里实现什么,但它显然不是您的 javascript 中的错误,也不是您的 HTML 中的错误。尽管使用 6727&filter[]=6728 作为值是一个坏主意。

我希望错误是您获得提交信息的地方。您可能有错误定义和重定向到 url。

于 2013-03-02T10:54:05.317 回答
0

上面的 HTML 代码片段中存在一些问题。

  1. 请从 中去掉=<select name="filter[]="name属性表示表单域的名称,如果设置了method="get",浏览器会自动添加=来构造URL。

  2. <option value="6725&filter[]=6726">不会满足你的要求。value 属性中的所有内容都将被视为某个表单字段的值,在您的情况下为filter[],因此会被编码。这就是您看到%3D的原因

  3. 不用于传递表单字段的多个值。Naturaly 复选框是这种情况下的选项。

所以在第二种形式中,您可以使用复选框传递多个值

<input type="checkbox" name="filter[]" value="6725"/>
<input type="checkbox" name="filter[]" value="6726"/>

同样,请从任何表单字段元素的名称属性中删除= 。

于 2013-03-02T11:19:34.587 回答
0
<option value="6725&filter[]=6726">Option1 & Option2</option>
<option value="6727&filter[]=6728">Option3 & Option4</option>

您的选项值有问题尝试更改它..

于 2013-03-02T11:22:23.370 回答
0

@gijsnl URL 编码是默认浏览器行为(因为您使用的是表单获取方法),我认为破解它不是一个好主意。在您的情况下,您可以使用多选来实现目标。StackOverflow 里已经有帖子了,

如何发布具有多个选定值的 HTML 列表框的选择

我的建议如下, 1.从select 元素的name*属性中删除等号;2. 不要在一个选项元素中添加多个值 3. 使用表单发布而不是获取,除非您有非常充分的理由这样做。

于 2013-03-06T00:33:44.663 回答