如何在Acrobat中动态设置字段的“必需”状态?

时间:2013-03-28 21:22:37

标签: javascript validation acrobat

我有一个Acrobat PDF,一位同事希望在不使用javascript的情况下为Acrobat提供的简单选项之外添加一些表单验证。据我所知,Javascript将被要求这样做。我认为应该可以通过单选按钮组的属性 - >操作中的“添加操作 - > MouseDown->运行Javascript”选项来完成此行为。

基本上我有一组带3个按钮的单选按钮。如果按下buttonA,我想要fieldA。如果按下buttonB,我想要fieldB。对于buttonC / fieldC也一样。

我知道我的伪代码会是什么样子但是我无法将其翻译成javascript

onSelectionChanged(selection) {
    fieldA.required = false;
    fieldB.required = false;
    fieldC.required = false;

    if (selection == 'A') { fieldA.required = true; }
    if (selection == 'B') { fieldB.required = true; }
    if (selection == 'C') { fieldC.required = true; }
}

有人能指出我正确的方向吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

进行了更多挖掘,这是最终的解决方案(放置在单选按钮组的“MouseUp-> Run a Javascript”中:

var f = this.getField("ServiceType");

var ins = this.getField("InstallationDateTime");
var rem = this.getField("RemovalDateTime");
var ser = this.getField("ServiceRequestDateTime");

console.println(f.value);

ins.required = false;
rem.required = false;
ser.required = false;

if (f.value === "Install") {
    ins.required = true;       
}
if (f.value === "Removal") {
    rem.required = true;       
}
if (f.value === "Service") {
    ser.required = true;       
}

考虑到所有事情都很简单,找到following非常适合调试:

f = this.getField("myField");

for ( var i in f ) {
    try {
        if ( typeof f[i] != "function" ) {    // Do not list field methods
            console.println( i + ":" + f[i] ) 
        }
    } catch(e) {
    }           // An exception occurs when we get a property that does not apply to this field type.
}