如何使用Javascript修复PDF表单中的“必填字段”

时间:2019-07-11 11:51:47

标签: javascript forms pdf button

我试图将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 :(得分:0)

所有输入都应有一个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()是我不熟悉的两个功能,但希望上面的想法仍然可以理解。