Javascript 关于更改多个选定元素的jQuery
我有多个这样的选择元素Javascript 关于更改多个选定元素的jQuery,javascript,jquery,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"&
<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>
问题是,它似乎只将onchange表单submit应用于第一个字段,我希望它适用于任何已更改的选定字段
有没有办法让一个代码侦听所有选择元素,而不是给每个选择字段一个唯一的名称和不同的.change事件?id必须是唯一的使用类别。反而
每个元素的Id必须是唯一的。另一方面,类可以是多个的将一个类添加到多选择并执行$'.classname'。更改将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();
});
请将id属性更改为class属性,因为id必须是唯一的,所以不能有多个具有相同id的DOM元素。
如果将选择器从jQuery'changefilter'更改为jQuery'.changefilter',它将按预期工作使用类而不是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>
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。id在页面上应该是唯一的。多个元素不允许使用相同的id。这不是HTML标准。尝试提供唯一的id,并为所有对象分配一个公共类。然后通过class not 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>
<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>
jQuery('#id,#price,#sort').change(function () {
jQuery('#applyfilter').submit();
});