Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检索“的总计”;否则,如果;_Javascript_Acrobat - Fatal编程技术网

Javascript 如何检索“的总计”;否则,如果;

Javascript 如何检索“的总计”;否则,如果;,javascript,acrobat,Javascript,Acrobat,我该如何合计这些?如果我添加如下内容: else if (cb1){ event.value[+=][1]this.getField("Totaldays").value*0; } 它只是扩展了答案,没有给我总数。例如: else if (cb1){ event.value=this.getField("Totaldays").value*0; } else if (cb2){ event.value=this.getField("Totaldays").value*30; } else i

我该如何合计这些?如果我添加如下内容:

else if (cb1){ event.value[+=][1]this.getField("Totaldays").value*0;
}
它只是扩展了答案,没有给我总数。例如:

else if (cb1){ event.value=this.getField("Totaldays").value*0;
}
else if (cb2){ event.value=this.getField("Totaldays").value*30; 
}
else if (cb3){ event.value=this.getField("Totaldays").value*20;
}
else if (cb4){ event.value=this.getField("Totaldays").value*0;
}
else if (cb5){ event.value=this.getField("Totaldays").value*40;
}
else if (cb6){ event.value=this.getField("Totaldays").value*0;
}
else if (c7){ event.value=this.getField("Totaldays").value*0;
}

上面是我的当前代码,它不计算总数,只是用新选中的复选框编号替换以前的编号。

使用
+=
运算符而不是
+
将数字添加到运行总数中

//...
else if (cb1){ event.value += this.getField("Totaldays").value*0; }
else if (cb2){ event.value += this.getField("Totaldays").value*30; }
else if (cb3){ event.value += this.getField("Totaldays").value*20; }
else if (cb4){ event.value += this.getField("Totaldays").value*0; }
else if (cb5){ event.value += this.getField("Totaldays").value*40; }
else if (cb6){ event.value += this.getField("Totaldays").value*0; }
else if (cb7){ event.value += this.getField("Totaldays").value*0; }
也就是说,可能有更好的方法来做你想做的事情。如果你提供多一点背景,我可以为你完善我的答案

考虑这个更干净的代码块,它产生与上面代码相同的结果,但会自行记录逻辑和数据

let totalDays = this.getField("Totaldays").value;
[
    {checked: cb1, rentalRate:  0},
    {checked: cb2, rentalRate: 30},
    {checked: cb3, rentalRate: 20},
    {checked: cb4, rentalRate:  0},
    {checked: cb5, rentalRate: 40},
    {checked: cb6, rentalRate:  0},
    {checked: cb7, rentalRate:  0}
]
.filter(item => item.checked)
.forEach(item => {
    let rentalFee = item.rentalRate * totalDays;
    event.value += rentalFee;
});

这可以简化很多。理解复选框的返回值在AcrobatJavaScript中的工作方式是关键

选中该框时,返回指定的值;未选中该框时,返回“关闭”。因此,您可以将盒子的返回值设置为租金。此外,假设所有项目的租赁期限相同,整个过程简化为:

var rentaldays = xx // xx is the number of days, not part of this snippet
var rsum = 0 ;
for (var i = 0 ; i < 8 ; i++) {
rsum += this.getField("cb" + i).value.toString.replace(/Off/gim , 0)*1 ;
}
var rentalfee = rentaldays * rsum ; // to be written into a field
var rentaldays=xx//xx是天数,不是此代码段的一部分
var-rsum=0;
对于(变量i=0;i<8;i++){
rsum+=this.getField(“cb”+i).value.toString.replace(/Off/gim,0)*1;
}
var rentalfee=租金天数*rsum;//写入字段

就这样。

我有两个日期和一个文本框,用于确定日期之间的天数。如上所述,您可以看到某些设备有租赁费。(cb2、cb3和cb5)。目前,我得到了设备使用的总天数,并将其乘以租金,得出该设备的总成本。我只是想把设备加在一起,以防有人想同时租用两台设备。例如,如果cb3和cb5租赁了5天,那么总金额将为300美元(cb5为200美元,cb3为100美元)。我在上面添加了一张图片,以显示我正在使用的租赁页面OK。这是有道理的。我的答案解决了你的问题吗?你的代码更有意义,也更简单。仍然在使用它,因为它抛出了一个“syntaxerror:missing;before语句------------------让totalDays=this.getField(“totalDays”).value;[显示的代码在Acrobat JavaScript中不起作用,因为它基于比版本6更旧的ECMA-262版本。无法识别let运算符。使用let运算符时收到的错误消息是…您猜到了…“missing;before语句”