Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Событие change на селекте срабатывает дважды (https://javascript.ru/forum/jquery/60936-sobytie-change-na-selekte-srabatyvaet-dvazhdy.html)

TomTykver 28.01.2016 10:41

Событие change на селекте срабатывает дважды
 
Добрый день. Подскажите пожалуйста. Задача простая: при выборе значения из select делать что то.
Кусок html
<select class="sort">
<option value="1" selected>по рейтингу</option>
<option value="2">от дешевых к дорогим</option>
<option value="3">от дорогих к дешевым</option>
</select>


Вот jQuery
$(".sort").change(function(){
	alert( $(".sort :selected").val() );
});

Сообщение выводится дважды. Почему так ? Подскажите пожалуйста..

Mess4me 28.01.2016 12:09

TomTykver,
может вам только надо то значение которое вы выбрали , а не все проверять элементы с классом sort.
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>

<select class="sort">
    <option value="1" selected>по рейтингу</option>
    <option value="2">от дешевых к дорогим</option>
    <option value="3">от дорогих к дешевым</option>
</select>

<script>

    $(".sort").change(function(){
        alert( $(this).val() );
    });


</script>


</body>
</html>

TomTykver 28.01.2016 12:48

Странно: все равно два сообщения. Только одно со значением, а второе пустое

Mess4me 28.01.2016 13:03

TomTykver,

на этом тесте нормально вроде
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>

<select class="sort">
    <option value="1" selected>по рейтингу</option>
    <option value="2">от дешевых к дорогим</option>
    <option value="3">от дорогих к дешевым</option>
</select>

<select class="sort">
    <option value="4" selected>по рейтингу</option>
    <option value="5">от дешевых к дорогим</option>
    <option value="6">от дорогих к дешевым</option>
</select>



<script>

    $(".sort").change(function(){
        alert( $(this).val() );
    });


</script>



</body>
</html>

TomTykver 28.01.2016 13:30

Спасибо большое, буду искать ошибку у себя. Где то видимо у меня ошибка: может страница дважды загружается.....

TomTykver 28.01.2016 14:59

Разобрался: у меня класс "sort" используется в двух местах

Mess4me 28.01.2016 22:03

TomTykver,
:victory:


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