Javascript parseInt - 代码运行4次

时间:2015-12-23 17:14:02

标签: javascript parseint

对于这个函数,我试图计算$ r变量的结果,并在表单输入文本字段“otherHtmlIdName”中显示它们。

if语句检查它们是否都有值,然后获取计算变量的值并更改输入字段。它工作得很好,问题是它连续工作4次,每次parseInt()一次。

有什么方法可以让它运行一次吗?我也尝试了parseFloatNumber。没有帮助。

[编辑]:因为parseInt而没有发生这种情况。我在我的代码中调用了此ID上的click函数4次。

$("#htmlIdName").click(function () {
    var variableName = parseInt($r.ab3, 10) - parseInt($r.ab4, 10) + parseInt($r.sb3, 10) + parseInt($r.sb4, 10);
    if ($r.ab3 && $r.ab4 && $r.sb3 && $r.sb4) {
        $("#otherHtmlIdName").val(variableName);
        $("#otherHtmlIdName").change();
    };
});

2 个答案:

答案 0 :(得分:0)

如果你问如何阻止调用parseInt() 4次,你可以像这样使用map函数:

$("#htmlIdName").click(function() {
  //convert object of strings to array of ints
  var arr = $.map($r, function(el) {
    return +el
  });

  //perform same calculations as before
  var variableName = arr[0] - arr[1] + arr[2] + arr[3];

  if ($r.ab3 && $r.ab4 && $r.sb3 && $r.sb4) {
    $("#otherHtmlIdName").val(variableName);
    $("#otherHtmlIdName").change();
  };
});

工作示例:

http://codepen.io/anon/pen/xZExeM

答案 1 :(得分:0)

尝试:

$("#htmlIdName").off().on('click', function() {
    /* Your code here */
});