Livecycle(JavaScript)代码未按顺序运行

Livecycle(JavaScript)代码未按顺序运行,javascript,livecycle,livecycle-designer,Javascript,Livecycle,Livecycle Designer,下午好 我正在使用JavaScript在Livecycle ES2中制作PDF表单 我在“单击”事件中在表单上创建了一个按钮(Lockbutton1),使用下面的代码,使多个子表单上的所有字段都“只读”,然后用“另存为”框提示用户 FORM.Page1.LockButton1::click - (JavaScript, client) // Lock all fields in subforms except for signature subforms oTargetField = thi

下午好

我正在使用JavaScript在Livecycle ES2中制作PDF表单

我在“单击”事件中在表单上创建了一个按钮(Lockbutton1),使用下面的代码,使多个子表单上的所有字段都“只读”,然后用“另存为”框提示用户

FORM.Page1.LockButton1::click - (JavaScript, client)

// Lock all fields in subforms except for signature subforms

oTargetField = this.resolveNode("SubformTop");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmDEP");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmLN");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmLNR");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmDEPR");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmDEPRD");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmDEPRI");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmLNRD");
    oTargetField.access = "readOnly";
oTargetField = this.resolveNode("SubfrmLNRI");
    oTargetField.access = "readOnly";

// Hide other buttons and text

this.resolveNode("ResetButton1").presence = "invisible";
this.resolveNode("PrintButton1").presence = "invisible";
this.resolveNode("FormType").presence = "invisible";
this.resolveNode("$").presence = "invisible";
this.resolveNode("Splashtxt").presence = "invisible";

// Save the form
app.execMenuItem("SaveAs");
但是,当用户单击“锁定”按钮时,首先会提示用户“另存为”框,一旦表单被保存,则会启动其余代码,使子表单为只读,并隐藏按钮和文本

我不明白为什么第一件要启动的事情是“另存为”框,而这应该是代码中最后一件要启动的事情

我需要按照以下顺序执行流程:

  • 用户单击锁定按钮
  • 指定的子窗体已更改为只读
  • 按钮和文本不可见
  • “另存为”框提示用户
  • 有人知道发生了什么事,我怎么能解决吗

    问候,


    A

    您的代码逻辑正常。检查所有节点是否具有与LiveCycle中定义的相同的名称。请参见下面的示例和结果: