iText onchange事件未触发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iText onchange事件未触发相关的知识,希望对你有一定的参考价值。

我正在使用OpenPDF(基于iText)制作一个带有2个输入的简单PDF表单,我想要完成的是在填充第一个字段后自动将第一个字段的值复制到第二个字段中。我实际上需要一个字段,它会自动添加所有其他字段并显示总和,但是一开始我想尝试一个简单的例子。

我将一个onchange动作附加到一个字段,无论何时任何字段发生变化,都应通过我的理解触发:

TextField name1 = new TextField(writer, new Rectangle(100, 800, 200, 830), "idInput1");
PdfFormField field1 = name1.getTextField();
field1.put(PdfName.CO, new PdfNumber(1));
writer.addAnnotation(field1);

TextField name2 = new TextField(writer, new Rectangle(100, 700, 200, 730), "idInput2");
PdfFormField field2 = name2.getTextField();
field2.setAdditionalActions(PdfName.C, PdfAction.javascript("event.change = 123;", writer));
field2.put(PdfName.CO, new PdfNumber(2));
writer.addAnnotation(field2);

但是,这个onchange事件永远不会被触发。如果我将此事件更改为PdfName.K(用于击键),则会触发。

我做错了什么想法?

答案

好吧,我终于设法找到了什么问题,所以如果有人需要,我会发布它,因为我没有在网上找到类似的例子。

我有两个错误:

1)在JSfunction中,而不是“event.change = 123”应该代表“event.value = 123”

2)每个字段都应添加到编写者的计算订单中,只设置每个字段的计算订单编号是不够的:

writer.addCalculationOrder(field1);
writer.addCalculationOrder(field2);

以上是关于iText onchange事件未触发的主要内容,如果未能解决你的问题,请参考以下文章

使用 setattribute 选择下拉列表的值时未触发 Onchange 事件

p:日历 onselect/onchange 未触发

Android onChange 事件未在 contentObserver 中触发,用于 android 5 (Lollipop) 上的 chrome 历史记录

js 触发select onchange事件代码

扩展 UITextView 并触发 onChange 事件的委托

iPad JavaScript onchange onblur 未触发