Пустое значение в заявке

82
10 декабря 2021, 20:20

Кто может подсказать в чем причина? Когда нажимаю кнопку отправить, полученное значение становится 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>

Answer 1

Вы слушаете событие click на всех кнопках $('button'). Кнопка отправки тоже имеет тег <button>, поэтому, когда вы на неё нажимаете, загорается событие и срабатывает функционал пересчета.

Быстрым фиксом будет заменить селектор на $('button[type!=submit]').

То есть слушать событие на всех кнопках, кроме кнопки, у которой атрибут type="submit".

READ ALSO
Правильно ли в приложении используются глобальные переменные?

Правильно ли в приложении используются глобальные переменные?

Имеется приложение, в котором активно используются глобальные переменныеЕсть опасения, что это будет сильно нагружать систему

92
Что значит строчка кода?

Что значит строчка кода?

Есть код, который при вводе в input прерывает вызов функции callSearch, если после последнего ввода символа не прошло 2х секунд, помогите разобраться...

189
Как реализовать анимацию css через JS

Как реализовать анимацию css через JS

Необходимо, что бы при клике на ссылку вырисовывалась линия, попытался менять ширину линии с помощью JS, предварительно установив элементу...

170