在keyup函数上自动计算结果

时间:2016-06-09 04:57:40

标签: javascript jquery

我使用keyup function很难获得两个输入值之间的确切值。首先,我得到确切的结果来计算并在另一个输入标签中显示结果,但是当我添加另一个时,它显示错误的结果。要了解我的意思,请查看下面的代码。

HTML:

<input id="ivpd" type="text" name="input_vat_per_document" placeholder="Input VAT per Document">
<input id="gta" type="text" readonly>
<input id="gp" type="text" readonly>

JS:

$('#ivpd').keyup(function(){
  var percentage = 12 / 100;
  var gta = $('#ivpd').val() / percentage;
  var gp = $('#ivpd').val() + $('#gta').val();
  if (gta == Number.POSITIVE_INFINITY || gta == Number.NEGATIVE_INFINITY || isNaN(gta))
      gta = "N/A"; // OR 0
  $('#gta').val(gta);
  $('#gp').val(gp);
});

例如: 如果我在964.25输入ivpd,则gta将为8035.75,但gp会显示964.298035.75,这是错误的结果。它应该是ivpd + gta

3 个答案:

答案 0 :(得分:2)

connection = UserProfileDAO.getJDBCConnection(); CallableStatement statement = null; String query = "CALL " + USER_SCHEMA + ".UNAVAILABLE_USER(?)"; statement = connection.prepareCall(query); statement.setInt(1, Num_Off_Days); statement.executeUpdate(); 的{​​{1}}属性始终返回DOMString,如果任何操作数的类型为value,则Addition(+)运算符将执行input-elements操作不是string

  

string concatenation投射到addition,然后操纵。

Unary plus (+) input-value位于其操作数之前,并计算其操作数,但尝试将其转换为Number,如果尚未的话。

注意: unary plus operator也可以用来代替number

Number
Unary plus (+)

答案 1 :(得分:1)

最简单的方法是将ivpd和gta值乘以1

          var gta = $('#ivpd').val() / percentage;
        var ivpd= $('#ivpd').val();
        var gta =gta*1;
        var gp =(ivpd *1)+ (gta*1);

codepen url供参考 - http://codepen.io/nagasai/pen/EyPVVE

答案 2 :(得分:1)

试试这个:

var gp = parseFloat($('#ivpd').val()) + parseFloat($('#gta').val());