代码之家  ›  专栏  ›  技术社区  ›  Jason R. Coombs

pdf中的多选表单域

  •  3
  • Jason R. Coombs  · 技术社区  · 15 年前

    使用pdf,是否可以创建具有多个字段的单个表单元素,其中多个字段可以选择?例如,在HTML中,可以创建一组与相同字段名关联的复选框:

    <div>Select one for Member of the School Board</div>
    <input type="checkbox" name="field(school)" value="vote1">
    <span class="label">Libby T. Garvey</span><br/>
    <input type="checkbox" name="field(school)" value="vote2">
    <span class="label">Emma N. Violand-Sanchez</span><br/>
    

    在这种情况下,字段名为“field(school)”,提交表单时,“field(school)”可以提供0、1或2次。

    pdf中是否有一个等价的构造,其中一个字段可以有多个值。到目前为止,在我的调查中,似乎如果字段被赋予相同的名称,那么只能选择一个字段。如果可以在pdf中实现它,那么这个结构被称为什么,如何实现它?

    编辑:为了澄清,我知道pdf可以包含多个具有不同字段名的表单字段,并且这些字段可以单独选择,但是分组是隐式的,不像html表单那样显式。我想使用一个结构,使选项分组明确,最好允许限制(例如,至少需要一个,不超过2个,等等)。

    编辑:如果有人能找到一个权威的意见,这是不可能的,这也将是一个可取的答案。

    2 回复  |  直到 8 年前
        1
  •  1
  •   asnyder    15 年前

    是的,这是可能的。在adobe pdfs中,有复选框概念和单选按钮概念。尽管每个复选框和单选按钮都可以有自己的名称,但是它们也可以通过groupname.subbj通过子层进行分组。

    Adobe的描述如下:

    字段名。这可能包括 分层语法以便 促进逻辑分组。为了 例如,名称mygroup.firstfield 意味着表单域firstfield 属于一组名为 MyGROUP。创造的优势 逻辑层次结构是 在 相关表单域的属性 设置组的属性, 会自动传播给所有人 组中的窗体字段。

    通过层次结构设置字段后,在本例中可以获取mygroup的值,并返回组的选定值。类似地,对于单选按钮,您将确保组中的所有字段都具有相同的名称。

    这种创建表单字段的方法 适用于所有领域,但 应该注意的是单选按钮 需要特殊处理。自成立以来 的单选按钮表示一组 相互排斥的选择 属于同一组。因为 所有单选按钮的名称 在同一组中必须相同。 此外,

    单选按钮必须设置为 一种语句,其中一个数组 的值由 字段的ExportValues属性 对象。例如,假设我们 喜欢创造一套三台收音机 按钮,每个12点宽,12个 点高,都叫我的收音机。我们 会把它们放在 文档,它们的导出值将 是的,不是的,然后取消。他们可以 按照给定的代码创建 以下:

    var name = "myRadio";
    var type = "radiobutton";
    var page = 5;
    var rb = this.addField(name, type, page, [400, 442, 412, 430]);
    this.addField(name, type, page, [400, 427, 412, 415]);
    this.addField(name, type, page, [400, 412, 412, 400]);
    rb.exportValues=["Yes", "No", "Cancel"];
    
        2
  •  1
  •   Jason R. Coombs    15 年前

    asnyder的响应使我得出结论,在一个字段中没有自动处理多个值的方法(就像html一样)。Asnyder的示例来自使用JavaScript开发Acrobat应用程序,可从 Acrobat Javascript Developer Center . 本文档提供了一些如何操作复选框、组合框和单选按钮的示例。所有的例子都揭示了这个问题,并最终使我得出结论,任何使用pdf表单的系统都将隐式定义任何多个可选组。

    使用groupname.fieldname的结构似乎有助于将小部件作为一个组进行操作(在Acrobat JavaScript中),但无法枚举组的字段(不枚举所有字段并筛选groupname),并且无法确定该组的集合值。没有通过程序检查这些值。

    换言之,尽管可以通过编程实现这种形式,但多重选择值并不是acrobat或pdf的本质特性。