关于更改多个选定元素的jQuery

时间:2015-11-06 13:12:05

标签: javascript jquery

我有多个像这样的选择元素

<select id="changefilter" name="id"><option value="">1</option></select>
<select id="changefilter" name="price"><option value="">1</option></select>
<select id="changefilter" name="sort"><option value="">1</option></select>

然后我在更改函数上有一个jquery,它监听对changefilter所做的更改,然后像这样提交表单applyfilter:

jQuery('#changefilter').change(function () {
    jQuery('#applyfilter').submit();
});

问题是它似乎只是应用onchange表单提交应用于第一个字段,我希望这适用于任何已更改的选择字段。

有没有办法让一个代码监听所有选择元素,而不是给每个选择字段一个唯一的名称并且有不同的.change事件?

7 个答案:

答案 0 :(得分:0)

id(#必须是唯一使用clasess(.)而不是

<select class="changefilter" name="id"><option value="">1</option></select>
<select class="changefilter" name="price"><option value="">1</option></select>
<select class="changefilter" name="sort"><option value="">1</option></select>

jQuery('.changefilter').change(function () {
    jQuery('#applyfilter').submit();
});

答案 1 :(得分:0)

每个元素的ID都必须是唯一的。另一方面,类可以是多个

答案 2 :(得分:0)

将一个类添加到多重选择并执行$('。classname')。更改

答案 3 :(得分:0)

将ID更改为类

<select class="changefilter" name="id"><option value="">1</option></select>
<select class="changefilter" name="price"><option value="">1</option>   </select>
<select class="changefilter" name="sort"><option value="">1</option></select>

jQuery('.changefilter').change(function () {
jQuery('#applyfilter').submit();
});

答案 4 :(得分:0)

请将id属性更改为class属性,因为id必须是唯一的,不能有多个具有相同id的DOM元素。 如果您将选择器从jQuery('#changefilter')更改为jQuery('.changefilter'),它将按预期工作

答案 5 :(得分:0)

使用类而不是id,这里有一个例子,说明如何获取所选内容的名称和值。

<select class="changefilter" name="id"><option value="1">1</option><option value="2">2</option></select>
<select class="changefilter" name="price"><option value="1">1</option><option value="2">2</option></select>
<select class="changefilter" name="sort"><option value="1">1</option><option value="2">2</option></select>

<script>
    $('.changefilter').change(function () {
        alert('' + this.name + ' is change to ' + this.value)
    });
</script>

答案 6 :(得分:0)

ID应该是唯一的。 根据您的情况,您必须更改ID。

<select id="id" name="id"><option value="">1</option></select>
<select id="price" name="price"><option value="">1</option></select>
<select id="sort" name="sort"><option value="">1</option></select>

然后用逗号分隔ID。

.change(应该像:

jQuery('#id,#price,#sort').change(function () {
    jQuery('#applyfilter').submit();
});