我有多个像这样的选择元素
<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事件?
答案 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();
});