【问题标题】:how to get float values from form in Javascript [duplicate]如何从Javascript中的表单获取浮点值[重复]
【发布时间】:2018-07-24 22:10:54
【问题描述】:

我在 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,但是当我将这些值中的任何0.110.12 输入到@987654328 时@,它仍然显示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

【问题讨论】:

  • 你试过“keyup”-Event吗?
  • 不,我没试过
  • @AsfandyarKhan 我认为$('#Package_sms, #Package_sms_rate').on('input', function(){ 也应该可以正常工作。

标签: javascript


【解决方案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">

【讨论】:

  • 感谢keyup 工作:)
猜你喜欢
  • 2012-12-10
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
相关资源
最近更新 更多