javascript - 表单计算和 Javascript PDF 表单

标签 javascript pdf

我正在制作一个 PDF 表单,它使用 javascript 将 5 个字段相加。该脚本将添加所有数字,但如果一个字段留空,则总数就全部搞砸了。如果我返回并在空白字段中添加一个零,一切都会正常。我怎样才能解决这个问题。

this.getField("RUNTOTAL").value = this.getField("RUNRow1").value + this.getField("RUNRow2").value + this.getField("RUNRow3").value + this.getField("RUNRow4").value + this.getField("RUNRow5").value;

好吧,我尝试了这个,但现在根本不起作用。也许我错过了什么?

function isNumeric(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

function getFieldValue(RUNRow1) {
  var value = this.getField(RUNRow1).value;
  return isNumeric(value) ? value : 0;
}
function getFieldValue(RUNRow2) {
  var value = this.getField(RUNRow2).value;
  return isNumeric(value) ? value : 0;
}
function getFieldValue(RUNRow3) {
  var value = this.getField(RUNRow3).value;
  return isNumeric(value) ? value : 0;
}
function getFieldValue(RUNRow4) {
  var value = this.getField(RUNRow4).value;
  return isNumeric(value) ? value : 0;
}
function getFieldValue(RUNRow5) {
  var value = this.getField(RUNRow5).value;
  return isNumeric(value) ? value : 0;
]
this.getField("RUNTOTAL").value = getFieldValue("RUNRow1") + getFieldValue("RUNRow2") + getFieldValue("RUNRow3") + getFieldValue("RUNRow4") + getFieldValue("RUNRow5");

最佳答案

这是 JavaScript 松散类型的结果。它时不时地袭击我。默认情况下,JavaScript 将空字符串视为字符串,而不是数字 0,除非您说服它这样做。

最简单的方法是将每个字段值乘以 1(假设字段确实包含可以转换为有效数字的字符串)。

因此,代码将如下所示:

this.getField("RUNTOTAL").value = this.getField("RUNRow1").value*1 + this.getField("RUNRow2").value*1 + this.getField("RUNRow3").value*1 + this.getField("RUNRow4").value*1 + this.getField("RUNRow5").value*1;

关于javascript - 表单计算和 Javascript PDF 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22918871/

相关文章:

javascript - 如何在 JavaScript 中将某些元素值设置为 null

javascript - 快速移动鼠标,框未重新绘制 ~ 仅 JavaScript

javascript - 通过 PHP 提交 PDF 表单应返回哪些数据到 Adob​​e Reader?

javascript - js 捆绑和范围困惑

javascript - V8: console.log 实现

javascript - 如何让 if/else 语句在函数内部工作

Erlang中的PDF处理库

pdf - 将 SWF 文件转换为 PDF 的工具

node.js - 减少 Node 中PDF的大小

r - 直方图和 qqplot 与 par 相邻 - 不显示在 PDF 中