целевые функции поля уровня документа в Adobe PDF - PullRequest
0 голосов
/ 21 марта 2019

Я не могу понять, как получить доступ к полям в сценариях уровня документа в 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 ;
    }
}

По сути, все, что я ввожу в поле, преобразуется в подходящий формат времени ЧЧ: мм. Я пробовал с функцией сканд, но она требует полной даты, чтобы работать часы и минуты. Так что я просто хочу передать данные о событии в функцию

...