Как получить значения с плавающей запятой из формы в Javascript

1

У меня есть поиск по всему миру на SOF, но ни одно из решений не работало для меня, мне нужна помощь при вычислении значений float из формы в javascript при нажатии клавиши.

У меня есть два поля в форме, и я хочу рассчитать значения.

<input name="Package[sms]" id="Package_sms" type="text">
<input name="Package[sms_rate]" id="Package_sms_rate" type="text">

Вот мой код javascript.

$('#Package_sms, #Package_sms_rate').keypress(function () {
     var sms = parseFloat($("#Package_sms").val());
     var rate = parseFloat($("#Package_sms_rate").val());
     console.log(rate);
     // other code
     console.log(sms*rate);
});

Я пытаюсь получить значение Package_sms_rate Когда я Package_sms_rate значение 0.1, консоль показывает 0.1 отлично, но когда я ввожу любое из этих значений 0.11 или 0.12 до 0.19, оно все равно показывает 0.1. Из-за этого он делает неправильные расчеты. Как это исправить?

sms = 50000
rate = 0.1
total = 5000

sms = 50000
rate = 0.1 // when i enter 0.12
total = 5000 // still showing 5000, it should be 6000 for rate 0.12
  • 0
    Вы пробовали "keyup" - событие?
  • 0
    Нет я не пробовал
Показать ещё 1 комментарий
Теги:

1 ответ

1

Вам нужно изменить событие keypress событие keyup, чтобы оно срабатывало после того, как значение было применено к входу:

Примечание. Я заменил ваш parseFloat() оператором +, он короче и гораздо более универсален.

$('#Package_sms, #Package_sms_rate').keyup(function () {
     var sms = +$("#Package_sms").val();
     var rate = +$("#Package_sms_rate").val();
     console.log(rate);
     console.log(sms*rate);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="Package[sms]" id="Package_sms" type="text">
<input name="Package[sms_rate]" id="Package_sms_rate" type="text">
  • 0
    Спасибо keyup сработало :)

Ещё вопросы

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