【问题标题】:Populate combo box using user input使用用户输入填充组合框
【发布时间】:2015-02-06 19:09:47
【问题描述】:

有没有办法从同一页面上的文本框中将项目添加到组合框中?另外,您如何将该项目添加到同一页面上的多个组合框中?这是一个 acrobat pdf 表格。任何示例将不胜感激。

【问题讨论】:

  • 这真的取决于你如何实现组合框。将文本输入连接到按钮或您喜欢的任何元素。在其点击功能中,只需将文本添加为​​新选项、li 或您用于组合框选项的任何元素。

标签: javascript acrobat


【解决方案1】:

这是可能的。

最好的方法是获取 Acrobat JavaScript 文档,它是 Acrobat SDK 的一部分,可从 Adob​​e 网站下载。特别感兴趣的是 setItems() 和 getItems() 的条目及其引用的 Field 对象方法。

由于添加项目的实现,你会先读取当前项目,然后添加你的新项目,然后将它们写回(例如,我们假设没有具体的返回值):

var f = this.getField("myComboBox") ;
var fitms = new Array() ;

for (var fi = 0 ; fi < f.numItems ; fi++ ) {
fitms[fi] = f.getItemAt(fi, false) ;
}

if (this.getField("myAddingValue").valueAsString.length > 0) {
fitms[fitms.length] = this.getField("myAddingValue").valueAsString ;
}

f.setItems(fitms) ;

将此代码添加到按钮以在字段 myAddingValue 中添加项目,仅此而已。上述文档中有代码示例。

您可以创建一个文档级函数,该函数将组合框字段和附加值字段作为参数。

【讨论】:

  • 效果很好,不过有一个问题。我如何使这个工作适用于多个组合框。假设我有 5 个名为 place1、place2、place3、place4、place5 的组合框
  • 如果所有组合框都应该同步,您可以对每个组合框使用 setItems() 命令,而不是为这些(后续)字段定义变量 f,而是直接访问它们.getField("place1").setItems(fitms) ;等等。
【解决方案2】:

你可以使用 jQuery 来做这件事.. 将其视为 HTML

<text id="mytext">
<button id="btnAdd" type="button">Add</button>
<select class="awesomecombo" id="combo_one"></select>
<select class="awesomecombo" id="combo_two"></select>

Javascript 是

$("#btnAdd").click(function(){
    $(".awesomecombo").append("<option>"+$("#mytext").val()+"</option>");
});

这将解决您的目的。

更新:添加了用于多个组合框选择的类和附加的&lt;option&gt;

【讨论】:

  • 这是一个非常糟糕的例子。追加不会只是追加文本,而是需要是一个 并且避免将 ID 作为此活动的主要目标。如果您有多个需要追加,请使用一个类,然后您可以一次插入所有内容。
  • 同意你的观点,我完全忘记添加&lt;option&gt;&lt;/option&gt;.. 并且没有考虑class 用于多个组合框。正在更新答案。
  • 酷,你的概念是正确的,但基于这个问题,最好给出一个功能示例。
  • 很抱歉,我应该说这是一个 Acrobat 表单。我标记了它,但没有在我的问题中指定。任何示例都会有很大帮助。
  • 我在@Ariful Haque 给出答案后更新了这个问题,以便更清楚。还需要这方面的帮助吗?有人吗?
猜你喜欢
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-03
  • 1970-01-01
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多