早上好,
首先,提前感谢您提供的任何帮助
我将尝试尽可能清楚地解释自己:
我有一列大约 30 个相等的文本字段,表单中的宽度和高度不可修改。用户在文本字段中输入文本时有两个选项:
a) 逐字输入
b) 从另一个源复制一段文本并将其粘贴到文本字段中。
现在,我想要的是有两个不同的选项,如果第一个文本字段已被填写,表单将自动跳到下一个文本字段。
这是我到目前为止尝试过的两个选项,它们在单独使用时都可以使用,但不能一起使用:
a) 自定义按键脚本,比如说 Field.0:
if (event.fieldFull) {
this.getField("Field.1").setFocus();
}
b) Field.0 的自定义模糊脚本:
var temp = new Array();
temp = this.getField("Field.0").value.split(' ');
var rest = "";
ini = temp[0] + ' ';
var charsRead = temp[0].length + 1;
var index = 1;
while ((charsRead + temp[index].length) < 110){
ini = ini + temp[index] + ' ';
index++;
charsRead = charsRead + temp[index].length + 1;
}
for (var i=index ; i < temp.length-1 ; i++){
rest = rest + temp[i] + ' ';
}
this.getField("Field.0").value = ini;
this.getField("Field.1").value = rest;
this.getField("Field.1").setFocus();
您可能已经注意到,我不是专家(甚至不是一个...)脚本编写者,因此代码可能效率低下或重复。
脚本的作用是:将粘贴的块的单词存储到一个数组中(以免在单词中间分割文本),并复制第一个合适的单词,最多 110 个字符(一个任意数字,有时也是很少,有时太多),然后取出数组中的其余单词并将它们粘贴到下一个字段中。
当用户跳出 Field.0 时,焦点设置为 Field.1。如果文本仍然太长,当他跳出 Field.1 时,焦点将设置为 Field.2,并将文本的第二个剩余部分粘贴到其中。因此,他所要做的就是 Ctrl+V 和 TAB、TAB、TAB,直到所有文本都占据了必要的字段。
现在,对于点 a) 的解决方案,必须禁用滚动长文本,但是,用于解决问题 b) 的脚本是必需的。
我正在寻找的是一种方式,独立于用户输入文本的方式,当字段已满时自动选项卡。完整的意思是文本已经到达可见区域的尽头。
无论是在输入文本时(我想它必须使用击键脚本)还是在粘贴长短语时(使用模糊,因为击键在这里不起作用)。
很抱歉发了这么长的帖子,再次感谢您的帮助。
顺便说一句:使用 Adobe Acrobat X Pro。