将课程添加到"选择"如果选择了默认选项

时间:2018-04-12 08:41:25

标签: jquery

我有10个下拉列表(Drupal 7中的视图暴露过滤器,启用了AJAX模式)并且需要添加额外的类" test"如果已选择默认选项,则为每个列表。并删除课程" test"从未选择默认选项的列表中。我有:

$('.selDiv option:eq(0)').prop('selected', true).jQuery("select").addClass("test");

它增加了"测试"类到所有下拉列表。但是如果您在任何列表中选择了任何非默认值,那么"测试"所有列表的类(即使选择了默认选项)都消失了,直到页面重新加载才会再次出现。

1 个答案:

答案 0 :(得分:1)

要实现此目的,您只需要向change元素添加select事件处理程序,以检查所选option的索引,然后添加或删除test根据需要分类:



$('.selDiv option:eq(0)').prop('selected', true)
$("select").addClass("test").on('change', function() {
  var optionIndex = $(this).find('option:selected').index();
  $(this).toggleClass('test', optionIndex == 0);
});

.test {
  border: 1px solid #C00;
  outline: 0;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="selDiv">
  <option>Please select</option>
  <option>Foo</option>
  <option>Bar</option>
</select>

<select class="selDiv">
  <option>Please select</option>
  <option>Foo</option>
  <option>Bar</option>
</select>
&#13;
&#13;
&#13;