Я не могу понять, как получить доступ к полям в сценариях уровня документа в PDF-файлах Adobe Acrobat. У меня есть сценарий проверки / форматирования записи времени, который я поместил в раздел проверки, но у меня есть много полей, которые нужно использовать. Я предпочел бы иметь функцию уровня документа, которую я мог бы просто вызвать, передав параметр введенного значения, но здесь я потерпел неудачу.
Для этого у меня есть функция уровня документа, которая заменяет символ строки:
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 ;
}
}
По сути, все, что я ввожу в поле, преобразуется в подходящий формат времени ЧЧ: мм. Я пробовал с функцией сканд, но она требует полной даты, чтобы работать часы и минуты. Так что я просто хочу передать данные о событии в функцию