【问题标题】:How to fix "required fields" in PDF form with Javascript如何使用 Javascript 修复 PDF 表单中的“必填字段”
【发布时间】:2019-07-11 11:51:47
【问题描述】:

我尝试使用 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); 
    }  
}

【问题讨论】:

    标签: javascript forms pdf button


    【解决方案1】:

    所有输入都应该有一个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() 是我不熟悉的两个函数,但希望上面的想法仍然是相关的。

    【讨论】:

      猜你喜欢
      • 2020-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      相关资源
      最近更新 更多