Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как правильно проверить выбор select? (https://javascript.ru/forum/dom-window/75994-kak-pravilno-proverit-vybor-select.html)

Aleksanderj 23.11.2018 10:49

Как правильно проверить выбор select?
 
Доброго дня всем.
Нужно чтобы при выборе определенного option добавлялся или удалялся class. Метод
$('select').on('change', function () {
      var optionSelected = $("option:selected", this);
      var valueSelected = this.value;
      if (valueSelected == '.services-slide_one') {
         $("body").addClass("test");
      } else {
         $("body").removeClass("test");
      }
    });

почему то не работает.
Подскажите как можно такое реализовать?

Nexus 23.11.2018 11:06

Мб так?
$('select').on('change', function() {
    document.body.classList[
        this.value == '.services-slide_one' ? 'add' : 'remove'
    ]('test');
});

Dilettante_Pro 23.11.2018 11:09

Aleksanderj,
А покажите ваш select

Aleksanderj 23.11.2018 11:10

Цитата:

Сообщение от Nexus (Сообщение 499199)
Мб так?
$('select').on('change', function() {
    const has = this.options[this.selectedIndex].classList.contains('services-slide_one');

    document.body.classList[
        has ? 'add' : 'remove'
    ]('test');
});

Тоже не работает

Aleksanderj 23.11.2018 11:10

Цитата:

Сообщение от Dilettante_Pro (Сообщение 499201)
Aleksanderj,
А покажите ваш select

<form class="filter">
	<div class="filter-group">				
	<select name="filter">				 
	  <option value=".services-slide_one">Все</option>
	  <option value=".evac">Эвакуатор</option>
	  <option value=".gruz">Грузоперевозки</option>				
	</select>
	 </div>
</form>

Nexus 23.11.2018 11:11

Aleksanderj, опишите условие, по которому body должен класс добавляться. По-человечески.

upd. поправил пост №2

j0hnik 23.11.2018 11:16

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
	<form class="filter">
	<div class="filter-group">				
	<select name="filter">				 
	  <option value=".services-slide_one">Все</option>
	  <option value=".evac">Эвакуатор</option>
	  <option value=".gruz">Грузоперевозки</option>				
	</select>
	 </div>
</form>
	<script>	

$('select').on('change', function () {
	document.body.className = this.value.slice('1');
});

	</script>

j0hnik 23.11.2018 11:19

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
	<form class="filter">
	<div class="filter-group">				
	<select name="filter">				 
	  <option value="services-slide_one">Все</option>
	  <option value="evac">Эвакуатор</option>
	  <option value="gruz">Грузоперевозки</option>				
	</select>
	 </div>
</form>
	<script>	

$('select').on('change', function () {
	document.body.className = this.value;
});

	</script>


или точки уберите

Aleksanderj 23.11.2018 11:20

Цитата:

Сообщение от Nexus (Сообщение 499204)
Aleksanderj, опишите условие, по которому body должен класс добавляться. По-человечески.

upd. поправил пост №2

Спасибо большое!:)


Часовой пояс GMT +3, время: 17:59.