我正在为PDF JavaScript开发求和脚本
I am working on a summation script for PDF JavaScript
当所有字段都有一个值时,这工作正常,但如果一个字段为空,它就像一个字符串,将所有值放在字段中。我希望这能汇总所有字段,即使该字段为空。 此脚本将添加到我的总计字段(附表 F_11 上的金额)的"自定义计算脚本"中。请
var v1 = getField("Amount on Schedule F_1a").value;
var v2 = getField("Amount on Schedule F_1b").value;
var v3 = getField("Amount on Schedule F_37").value;
var v4 = getField("Amount on Schedule F_46").value;
var v5 = getField("Amount on Schedule F_2").value;
var v6 = getField("Amount on Schedule F_3b").value;
var v7 = getField("Amount on Schedule F_4b").value;
var v8 = getField("Amount on Schedule F_5a").value;
var v9 = getField("Amount on Schedule F_5c").value;
var v10 = getField("Amount on Schedule F_6b").value;
var v11 = getField("Amount on Schedule F_6d").value;
var v12 = getField("Amount on Schedule F_7").value;
var v13 = getField("Amount on Schedule F_8").value;
var v14 = getField("Amount on Schedule F_8_1").value;
var v15 = getField("Amount on Schedule F_8_2").value;
var v16 = getField("Amount on Schedule F_8_3").value;
var v17 = getField("Amount on Schedule F_8_4").value;
var v18 = getField("Amount on Schedule F_8_5").value;
var v19 = getField("Amount on Schedule F_8_6").value;
var v20 = getField("Amount on Schedule F_8_7").value;
event.value =
((v1+v2+v3+v4+v5+v6+v7+v8+v9+v10+v11+v12+v13+v14+v15+v16+v17+v18+v19+v20)
!==0)?
(v1+v2+v3+v4+v5+v6+v7+v8+v9+v10+v11+v12+v13+v14+v15+v16+v17+v18+v19+v20)
:"";
你可以这样做:
var v1 = getField("Amount on Schedule F_1a").value!="" ? getField("Amount on Schedule F_1a").value : 0 ;
如果字段为空,这将返回"0",但您的代码非常重复,您可以使用循环循环遍历值。
看看 js 中的三元运算符。
你发现 JavaScript 的"功能"是松散类型的,并动态分配类型。
空字段的值就是空字符串,这就是 JavaScript 连接这些值的原因。您必须强制字段值的类型为数字。
最简单的方法是将字段值乘以 1;这样就会得到数字;但是,您必须确保您的用户实际输入了一个数值(您可以通过在"字段属性"对话框中将格式设置为"数字"来实现)。这将看起来像:
var v1 = this.getField("Amount on Schedule F_1a").value * 1 ;
等等。
另一种选择是使用 Number() 方法。这将看起来像:
var v1 = Number(this.getField("Amount on Schedule F_1a").value ;
如果要在显示结果之前对其进行测试,则可能需要汇总到一个变量中,然后测试该变量。如果它是 0(并且 0 不是"合法"值),您可以将结果字段的值设置为空字符串,否则设置为结果(并且您可以使用 util.printf() 完全控制格式)。
最后一条评论:对于一个富有成效的形式,可能值得查看字段名称,并使它们更紧凑,或者使用序号分层;在这种情况下,您可以循环访问字段名称,并在循环中进行计算。
相关文章:
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- Webpack开发服务器和React服务器端渲染
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 如何在php中的jquery中对循环内的选择框值求和
- JavaScript滚动脚本-在测试中激发,而不是在开发站点上
- 如何在jquery中使用实时计算求和值
- webpack开发模式和生产构建模式之间有什么区别
- 开发第三方小部件-Angular vs jQuery vs普通的旧JS
- index.html使用webpack开发服务器未重新加载
- 尝试求和时,在我的表的页脚中返回$NaN
- Chrome开发工具中使用了哪些框架和库
- 如何在Chrome中找到JSON后将其放入我的应用程序's开发人员工具
- 为第一次尝试Javascript的经验丰富的开发人员提供建议
- mozilla插件的开发
- `当使用箭头函数时,“开发工具”中未定义“this”
- Rally SDK外部开发Rally环境未定义
- 为什么firefox开发人员控制台引用script.js
- 如何使用Socket.io和Node.js开发大型聊天应用程序
- Javascript未在开发服务器上填充Perl表单
- 我正在为PDF JavaScript开发求和脚本