要求文本框在可填充PDF中具有值

要求文本框在可填充PDF中具有值,pdf,adobe,pdf-generation,Pdf,Adobe,Pdf Generation,我有一个可填充的PDF文件。我希望在用户保存PDF文档时,文本框必须有一个值,即该值不是空的 以下是我尝试过的: (1)在“文本框”上设置“必需”字段。 问题:除了把文本框涂成红色外,这没什么作用 (2)我试图在“onBlur”事件中使用以下代码: f = getField(event.target.name) if (f.value.length == 0) { f.setFocus() //Optional Message - Comment out the ne

我有一个可填充的PDF文件。我希望在用户保存PDF文档时,文本框必须有一个值,即该值不是空的

以下是我尝试过的:

(1)在“文本框”上设置“必需”字段。

问题:除了把文本框涂成红色外,这没什么作用

(2)我试图在“onBlur”事件中使用以下代码:

f = getField(event.target.name)
if (f.value.length == 0)
{    
   f.setFocus()    
   //Optional Message - Comment out the next line to remove
   app.alert("This field is required. Please enter a value.")
}
问题:如果用户从未单击此框,则没有问题

(3)我尝试使用“验证”选项卡并运行自定义JavaScript。

问题:如果您不点击文本框,则没有验证,因此如果用户忘记填写文本框,则完全可以将文本框留空


好吧,我没有主意了。。。有人吗?

由于您使用的是Acrobat JavaScript,我假设您使用的查看器支持并执行Acrobat JavaScript。
在这种情况下,您可以将文档的WillSave操作设置为自定义JavaScript操作,并在此处执行验证。我不确定是否可以取消保存操作,但如果验证失败,至少可以显示警报。
更新:此脚本将在所有字段中循环,如果字段值为空,则显示并发出警报

for ( var i = 0; i < this.numFields; i++) {
    var fieldName = this.getNthFieldName(i);
    var field = this.getField(fieldName);
    if (field.value.length == 0)
    {    
        field.setFocus()    
        app.alert("Field " + fieldName + " is required. Please enter a value.")
    }
}
for(var i=0;i

将脚本放在文档的willsave操作中,每次用户保存表单时,脚本都会运行。在Acrobat中,您可以在“工具”>“JavaScript”>“设置文档操作”中进行设置,然后选择“文档将保存”。

我该怎么做?示例代码?对于JavaScript,我是一个新手,所以我使用谷歌搜索将其拼凑在一起。我对Acrobat JavaScript没有太多经验,但我会尝试用代码示例来帮助您。是的,但是我把这个脚本放在哪里?我可以使用什么函数在“保存”之前调用?文档将保存操作在保存文件之前由Adobe acrobat自动调用。您只需将此脚本作为动作的主体。请参阅我关于如何使用Acrobat执行此操作的答案的结尾。如果您正在使用其他工具,请告诉我。