Javascript getField returns 0 对于 dash/minus 交易品种

Javascript getField returns 0 for a dash/minus symbol

我有一个包含计算的 PDF 文件。这个想法是,用户在一个简单的表格上输入信息,数据在同一个表格上被复制多次,这样他们就可以在同一个页面上打印同一个标签 4 次,而无需重新输入所有内容。因此,每个字段的计算结果为:

event.value = this.getField("Field1").value;

除非有人输入 dash/minus 符号,否则这很有效。然后计算 returns 0 而不是破折号。这是唯一发生这种情况的角色。我想是因为它本质上是数学的,但是 none 的其他操作符号却这样做了,所以我很困惑。

我正在使用 FoxIt PhantomPDF 创建带有公式的 PDF。在 Adob​​e Reader XI 中打开的完全相同的 PDF 可以完美运行。所以我不确定这是 JavaScript 问题还是 FoxIt 问题。谢谢!

您需要将 value 转换为数字,因为您得到的 value 是字符串。

event.value = parseFloat(this.getField("Field1").value);

当谈到将字段值从一个字段推送到另一个字段时,我通常使用

this.getField("fieldToPushValueTo").value = event.value ; 

在验证事件中。有了这个,值被推入的字段仍然是可编辑的。

每次表单中的任何字段的值发生变化时,使用计算事件来传递字段值,并且不允许更改字段的值,因为它会立即被替换。

也许您可以附加一个空字符串以防止减号被解释为数学运算。

event.value = this.getField("Field1").value + "" ;

如果这两个字段具有相同的属性,只需复制(copy/paste 或重复拖动)它们。具有相同名称的字段具有相同的值;无需计算或其他脚本。