Как исправить «обязательные поля» в PDF-форме с помощью Javascript - PullRequest
0 голосов
/ 11 июля 2019

Я пытался использовать JavaScript для механизма управления внутри PDF-формы.Есть много полей, флажков и т. Д. Некоторые из них являются обязательными, некоторые из них не обязательны, а некоторые из обязательных отображаются только при установке определенного флажка.

Моя проблема сейчас заключается в том, что некоторые из обязательных полей - это выпадающие меню или поля параметров, и JavaScript не показывает, что они «отсутствуют», когда я нажимаю кнопку.Если я удаляю часть (f.value.length<1)), она показывает все обязательные поля, но не распознает те, которые заполнены, например, выпадающим элементом, текстом или подобным, потому что условие отсутствует.

Мне нужен кодкоторый находит все обязательные поля и видит, являются ли они пустыми или заполнены НИЧЕГО, и способ исключения некоторых полей, поскольку некоторые из них видны только при активированном определенном флажке или способ включить эти поля только при активированном определенном поле.

Спасибо!

kontrollieren(); 
function kontrollieren() {  
    var feld;  
    feld = "" 
    for (var i = 0; i < this.numFields; i++) {  
        var fName = this.getNthFieldName(i);  
        var f = this.getField(fName);  
        if ((f.type != "button") && f.required && (f.value.length < 1)) {  
            feld = feld + fName + "\n"; 
        }  
    }  
    if (feld == ""){  
        app.doc.print(); 
    }  
    else {
        app.alert("Bitte füllen sie vor dem Drucken alle Pflichtfelder aus.\nFehlende Felder:\n\n" + feld); 
    }  
}

1 Ответ

0 голосов
/ 11 июля 2019

все входы должны иметь поле name, а также поле value. Возможно, вам придется идентифицировать вход (и, следовательно, используемый метод проверки) таким образом.

В таких ситуациях, когда есть несколько входов и несколько условных выражений, определяющих, что такое required, попытайтесь поймать false. Я бы использовал что-то похожее на это:

for (var i = 0; i < this.numFields; i++) {  
    var fName = this.getNthFieldName(i);  
    var f = this.getField(fName);  
    if ((f.type != "button") && f.required) { 

        // For a Select Input
        if (f.name === 'selectInputName') {
            // Or whatever the 'default' value is that represents not selecting a value
            if (f.value !== 'Select One') {
                feld = feld + fName + '\n';
            }
        }

        // For a checkbox
        if (f.name === 'checkboxInputName' && f.checked) {
            feld = feld + fName + '\n';
        }

        // For an input
        if (f.name === 'textInputName' && f.length.value > 0) {
            feld = feld + fName + '\n';
        }

    }  
}  

Я не на 100% знаю, как работает ваша структура - getNthFieldName() && getField() - две функции, с которыми я не знаком, но, надеюсь, идея, представленная выше, все еще имеет отношение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...