javascript - Bluebeam 基于下拉菜单自动填写表单字段

标签 javascript forms pdf drop-down-menu autofill

我是 Bluebeam 的新手,我的任务是制作一个表单,其中文本字段根据下拉选择自动填充。下拉列表是联系人,自动填充区域是职位、电子邮件和电话。我发现了一些看起来可能有效的 Javascript ( How to make a Drop-down form in a PDF auto-populate a text box [Bluebeam] ),但我不知道如何在 Bluebeam 中实际设置它。

我在表单中输入了下拉菜单,并且为自动填充区域创建了表单文本框。但是我应该把它放在哪里,如果这是我会使用的代码:

ar contarr = new Array() ;
contarr[0] = ["Contact", "Title", "Email", "Telephone"] ;
contarr[1] = ["Miguel", "Facilities Manager", "Miguel@gmail.com", "+1 555.555.9285 | Cell"]
contarr[2] = ["Jerry", "Facilities Manager", "Jerry@gmail.com", "+1 555.555.8642 | Cell"]
contarr[3] = ["Andrew", "Engineer", "Andrew@gmail.com", "+1 555.555.0985 | Cell"]
contarr[4] = ["Tom", "Director", "Tom@gmail.com", "+1 555.555.5987 | Cell"]
contarr[5] = ["Richard", "Supervisor", "Richard@gmail.com", "+1 555.555.7193 | Cell"]

我找到了这部分答案:

“在您的下拉列表中,您添加联系人姓名,并作为返回值,添加其条目在 contarr 数组中的索引号。假设我们将下拉列表称为“联系人”。”

我不知道该怎么做。我已经添加了联系人姓名,但是我在哪里放置“返回值”和“索引号”?我不知道“contarr array”是什么。

它还在我将放置的独立文件中说:

var sele = this.getField("Contact").value ;
this.getField("Title").value = contarr[sele][1] ;
this.getField("Email").value = contarr[sele][2] ;
this.getField("Telephone").value = contarr[sele][3]

独立字段只是我隐藏在 pdf 某处的常规文本框,还是我们在谈论 excel 工作表之类的东西?

我在整个网络上都进行了搜索,但找不到分步说明。非常感谢任何帮助。

最佳答案

这是一个片段,可以是一个文档级脚本来实现你想要的。该代码假定您有 4 个表单域,一个名为“联系人”的下拉列表,然后是 3 个文本框,即“标题”、“电子邮件”和“电话”。

该代码使用来自 contarr 的名称填充组合框,然后添加代码以响应事件项目的更改以更新文本框。

var contarr = new Array() ;
contarr[0] = ["Contact", "Title", "Email", "Telephone"] ;
contarr[1] = ["Miguel", "Facilities Manager", "Miguel@gmail.com", "+1 555.555.9285 | Cell"]
contarr[2] = ["Jerry", "Facilities Manager", "Jerry@gmail.com", "+1 555.555.8642 | Cell"]
contarr[3] = ["Andrew", "Engineer", "Andrew@gmail.com", "+1 555.555.0985 | Cell"]
contarr[4] = ["Tom", "Director", "Tom@gmail.com", "+1 555.555.5987 | Cell"]
contarr[5] = ["Richard", "Supervisor", "Richard@gmail.com", "+1 555.555.7193 | Cell"]

var names = [];
for (var i = 0; i < contarr.length; i++) {
    names.push(contarr[i][0]);
}

this.getField("Contacts").setItems(names);
this.getField("Contacts").setAction("Keystroke", "onContactSwitch(event.value);");

selectContact(0);   // Choose initial contact

function onContactSwitch(name) {
    for (var i = 0; i < contarr.length; i++) {
        if (contarr[i][0] == name) {
            selectContact(i);
            break;
        }
    }
}

function selectContact(i) {
    this.getField("Title").value = contarr[i][1];
    this.getField("Email").value = contarr[i][2];
    this.getField("Telephone").value = contarr[i][3];
}

关于javascript - Bluebeam 基于下拉菜单自动填写表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44204069/

相关文章:

php - PHP 中是否有 pdf 模板的解决方案?

c# - iTextSharp 7 : Proper Way to Resize Stamps?

JavaScript innerHTML 不适用于 IE?

javascript - 将项目返回到数组中

javascript - Mongoose 返回一个空数组

Django:字段依赖

php - 在 PHP 中对齐表单

asp.net - 如何在浏览器中打开PDF并修改并保存?

javascript - 将 float 参数从 html 传递到 javascript

javascript - 在保留输入内容的同时添加附加字段