对于这个函数,我试图计算$ r变量的结果,并在表单输入文本字段“otherHtmlIdName”中显示它们。
if语句检查它们是否都有值,然后获取计算变量的值并更改输入字段。它工作得很好,问题是它连续工作4次,每次parseInt()
一次。
有什么方法可以让它运行一次吗?我也尝试了parseFloat
和Number
。没有帮助。
[编辑]:因为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();
};
});
答案 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();
};
});
工作示例:
答案 1 :(得分:0)
尝试:
$("#htmlIdName").off().on('click', function() {
/* Your code here */
});