gpt4 book ai didi

javascript - 如何从 LiveCycle 中的下拉列表将一个子表单中的数据填充到另一个子表单中的文本字段

转载 作者:行者123 更新时间:2023-12-03 10:48:12 26 4
gpt4 key购买 nike

我对 JavaScript 不太了解,但觉得这应该相当容易。我有一个包含多个选项的下拉列表,以下内容位于“点击”选项下:

form1.CapExForm.Subform1.Table1.HeaderRow[0].DropDownList1::click -(JavaScript,客户端)

我想在标题脚本如下的文本字段中输入某人的姓名:

form1.Subform3.ApprovalSubForm.Table3.Row2.RequestorName::click -(JavaScript,客户端)

我之前在 PDF 表单中完成了此操作,但需要表单流动并添加行,因此移至 LiveCycle。下面是 Adob​​e PDF 表单中的脚本(“软件 >$1,000,000”来自下拉列表,下面的所有信息都是我想要根据该选择填充的文本字段),如果这有助于澄清我正在尝试的内容:

if (event.value=="Software >$1,000,000")  {         
this.getField("Name").value = "Type Requestor Name";
this.getField("Name_2").value = "Type Dept. Manager";
this.getField("Name_3").value = "Todd Stephenson";
this.getField("Name_4").value = "John Kapchinske";
this.getField("Name_5").value = "N/A";
this.getField("Text2").value = "Approval Reviewed: Hazel Welch";
this.getField("Signature").value = "Must click, sign, and save to add signature";
this.getField("Signature_2").value = "Must click, sign, and save to add signature";
this.getField("Signature_3").value = "Must click, sign, and save to add signature";
this.getField("Signature_4").value = "Must click, sign, and save to add signature";
this.getField("Signature_5").value = "Must click, sign, and save to add signature";
this.getField("Signature1").value = "Must click, sign, and save to add signature";
}

最佳答案

好吧 - 我不确定我明白你想做什么,但我给出了我最好的猜测。当您从下拉列表中选择一个值时,您希望填充一些其他字段,对吗?

Designer 的 javascript 与 Acrobat 的 javascript 工作方式不同。这是一个很好的引用: Livecycle Scripting Reference .

这是一个 more comprehensive list of the properties通过 Designer 中的 JavaScript 可用。

首先,将其放入下拉列表的更改事件中。如果您将其放入单击事件中,则只要他们单击该字段,即使他们没有进行更改,它也会运行。

在这种情况下,请像这样放置 JavaScript:

if (xfa.event.newText == "Software >$1,000,000")  
{
field1SOMexpression.rawValue = "Value you want";
field2SOMexpression.rawValue = "Next value you want";
//add the other fields you want to reference here
}

这里,xfa.event.newText指的是更改后下拉列表的值。属性 .newText 仅在更改事件期间可用,并且您想要使用该属性,因为在更改事件期间,该字段的 rawValue 是原始值。其余时间,您可能希望使用 .rawValue 来访问字段的值,这就是我们使用它来设置其他字段的值的原因(因为它们不是触发更改事件的字段。)

SOM 表达式是对字段的引用。示例 - 根据您上面粘贴的内容,下拉列表的 SOM 表达式为 form1.CapExForm.Subform1.Table1.HeaderRow[0].DropDownList1。

如果没有看到表单,我无法告诉您要设置值的字段的表达式是什么,但是有几种方法可以获取要设置的每个字段的字段表达式。最简单的方法是转到脚本编辑器,按住 Ctrl 和 Shift 键,然后单击该字段;这会将其 SOM 表达式插入到脚本窗口中。

编辑:如果您希望值基于两个字段的组合,那么在需要的字段中使用计算脚本可能会更容易改变。

将脚本放入要设置值的字段的计算事件中,以根据两个下拉列表的值决定其值应为多少。

应该是这样的:

    var myValue = "";
var type = form1.CapExForm.Subform1.Table1.HeaderRow[0].DropDownList1.rawValue;
var price = ....(whatever the som expression is).PriceRange.rawValue;
if (type == "Software" && price == "1,000,000")
{
myValue = "Value you want";
}
else if (type == "Something else" && price == "Some other price . .")
{
myValue = "Some other value");
}
this.rawValue = myValue;

在这种情况下,“this”将指您要更改其值的字段,因为脚本将在该字段的计算事件中运行。只要计算脚本中引用的字段之一发生更改,就会触发计算事件。

关于javascript - 如何从 LiveCycle 中的下拉列表将一个子表单中的数据填充到另一个子表单中的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28489464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com