我不知道如何访问Adobe Acrobat pdf文件中文档级脚本中的字段。我有时间输入验证/格式脚本,已将其放入验证部分,但我有很多字段需要使用它。我宁愿有一个文档级功能,也可以通过传递输入的值参数来调用,但这就是我无法做到的。
为此,我有一个文档级功能来替换字符串字符:
function replaceAt(str, index, replacement)
{
return str.substr(0, index) + replacement+ str.substr(index + replacement.length);
}
如果timeValidate()如下所示,我想在验证字段中放入该函数:
function timeValidate() {
//Get entered value
var newTime = event.value;
//Remove any symbols that are not numbers
var newTime = newTime.replace(/[^0-9]/gi, "");
//How many actual number symbols
var length = newTime.length;
//Set the format string
var hhmm = "00:00";
if (length == 0){ //If nothing entered leave empty
hhmm="";
} else if (length == 1) { // H -> 0H:00
hhmm= replaceAt(hhmm, 1, newTime );
} else if (length == 2) { // HH -> HH:00
hhmm= replaceAt(hhmm, 0, newTime );
} else if (length == 3) { // HMM -> 0H:mm
hhmm= replaceAt(hhmm, 1, newTime[0]);
hhmm= replaceAt(hhmm, 3, newTime[1]);
hhmm= replaceAt(hhmm, 4, newTime[2]);
} else if (length == 4) { // HHmm -> HH:mm
hhmm= replaceAt(hhmm, 0, newTime[0]);
hhmm= replaceAt(hhmm, 1, newTime[1]);
hhmm= replaceAt(hhmm, 3, newTime[2]);
hhmm= replaceAt(hhmm, 4, newTime[3]);
} else if (length > 4) { //too long value
hhmm="";
}
//REGX check if valid time 0 < HH < 24 & 00 < mm < 60, separated by :
var RE_24hr = /^(2[0-3]|[0-1][0-9])(:)([0-5][0-9])$/;
if(RE_24hr.test(hhmm) == false) {
//Change color to red if invalid value enterd
event.target.textColor = ["RGB",1,0,0];
} else {
//Proper values set to black, ant apply formated value HH:mm
event.target.textColor = ["RGB",0,0,0];
event.value = hhmm ;
}
}
基本上,我输入的任何字段都将转换为适当的时间格式HH:mm。我已经尝试过使用scand函数,但是它需要完整的日期才能运行小时和分钟。所以我只是想将事件数据传递给函数