Кто может подсказать в чем причина? Когда нажимаю кнопку отправить, полученное значение становится NaN
let input = $('#total_price');
$('button').on('click', function(){
let price = parseInt($('.'+$(this).attr('id')).text()), // раз класс "цены" и ид кнопки совпадает, то будем это использовать.
check = $(this).attr('data-check'), // для проверки, типо "вкл\выкл"
altText = $(this).attr('data-alt-text'); // будем менять текст на кнопке.
// изменяем данные кнопки
$(this)
.attr({
'data-check': (check == 1 ? 0 : 1), // заменим "статус" активации
'data-alt-text': $(this).text() // поменяем местами название кнопки
})
.text(altText); // относится к смене названия местами
// дальше меняем цену в инпуте
let val = parseInt(input.val()); // получаем текущую цену
input.val(check == 1 ? (val - price) : (val + price)); // есть "добавить", то + к цене, если "убрать", то минус.
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="post" order="post.php">
<input id="total_price" type="text" value="50" readonly>
<hr>
<div class="price_1">1</div>
<button id="price_1" data-check="0" data-alt-text="Убрать">Добавить</button>
<br>
<div class="price_2">2</div>
<button id="price_2" data-check="0" data-alt-text="Убрать">Добавить</button>
<br>
<div class="price_3">3</div>
<button id="price_3" data-check="0" data-alt-text="Убрать">Добавить</button>
<button type="submit">Отправить</button>
</form>
Вы слушаете событие click
на всех кнопках $('button')
. Кнопка отправки тоже имеет тег <button>
, поэтому, когда вы на неё нажимаете, загорается событие и срабатывает функционал пересчета.
Быстрым фиксом будет заменить селектор на $('button[type!=submit]')
.
То есть слушать событие на всех кнопках, кроме кнопки, у которой атрибут type="submit"
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Имеется приложение, в котором активно используются глобальные переменныеЕсть опасения, что это будет сильно нагружать систему
Есть код, который при вводе в input прерывает вызов функции callSearch, если после последнего ввода символа не прошло 2х секунд, помогите разобраться...
Необходимо, что бы при клике на ссылку вырисовывалась линия, попытался менять ширину линии с помощью JS, предварительно установив элементу...