1

同僚が、Acrobat が JavaScript を使用せずに提供する単純なオプションを超えて、何らかのフォーム検証を追加することを望んでいる Acrobat PDF を持っています。私が知る限り、これを行うには Javascript が必要になります。ラジオボタングループのプロパティ->アクションにある「アクションを追加->マウスダウン-> 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; }
}

誰かが私を正しい方向に向けることができますか? 前もって感謝します。

4

1 に答える 1

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;       
}

すべてを考慮すると非常に簡単で、以下を見つけることはデバッグに非常に役立ちました。

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.
}    
于 2013-03-29T14:35:01.900 に答える