如何在Javascript中从表单中获取浮点值

时间:2018-02-14 10:56:45

标签: javascript

我在SOF上到处搜索但是没有一个解决方案适合我,我需要帮助计算从表单到按键上的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的值,当我输入值0.1时,控制台会完美地显示0.1但是当我输入任何这些值时{{1} }或0.110.12,它仍会显示0.19。因此,它正在进行错误的计算。我该如何解决?

0.1

1 个答案:

答案 0 :(得分: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">