Добавление 2 полей ввода вместе, когда 1 из них пусто

0

Я работаю над формой кредитной карты, в которой используется JavaScript.

Часто мои клиенты будут присылать мне больше денег, чем я их выставляю, поэтому, чтобы все было легко и не позволяло мне проиграть потенциальные деньги, у меня есть поле " Price которое показывает общую сумму, которую им будет выставлен счет. Теперь я добавил поле Tip которое позволит им добавить к этой цене.

Вот некоторые JavaScript/jQuery, которые у меня есть, что обновляет мое поле цены, когда они вводят значение подсказки...

$('.price_tip').keyup(function() {
  var tip = $('.price_tip').val();
  var price = $('.price').val();
  var total = parseInt(price) + parseInt(tip);
  $('.price').val(total);
});

Это работает довольно хорошо почти за исключением того, что если я удалю все из поля ввода Tip, то поле "Общая цена" станет NaN.

Мне нужно убедиться, что поле "Цена" всегда показывает, по крайней мере, то, что я выставляю платежу моему клиенту, если значение подсказки удалено.

Это где я мог бы помочь?


ОБНОВИТЬ

Вот моя последняя попытка, кажется, работает, я могу удалить все из окна подсказки, и мое полное поле цены не переходит к NaN сейчас. Я обнаружил еще одну проблему, если вводится не числовой элемент, а затем он запутывается.

Я не уверен, как убедиться, что это числовое значение?

$('.price_tip').keyup(function() {
  var tip = $('.price_tip').val();
  if(tip < 1){
    tip = 0;
  }
  var price = $('.price').val();
  var total = parseInt(price) + parseInt(tip);
  $('.price').val(total);
});
  • 1
    Установите цену по умолчанию на ноль, если это пустая строка.
Теги:

2 ответа

1
Лучший ответ

Вы пытались использовать функцию isNaN (variableName)? Эта функция сообщит вам, является ли содержимое переменнойName незаконным числом или нет. Так,

isNaN ("123") будет ложным, поскольку это не незаконное число isNaN ("12/3") будет истинным, то есть это незаконное число

Надеюсь это поможет

1

Когда конец подсказки пуст, $('.price_tip').val() возвращает пустую строку, последующий parseInt возвращает NaN, добавляя число и NaN, приводит к NaN.

Проверьте результат parseInt через isNaN и только если это число, добавьте его в общую сумму. Если это не номер, вы также можете отобразить его пользователю, что вход недействителен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню