Javascript在Livecycle中不起作用

Javascript not working in Livecycle

本文关键字:不起作用 Livecycle Javascript      更新时间:2023-09-26

我有在JSFiddle中工作的JavaScript,但在LiveCycle Designer ES3中不起作用。我正在尝试做的是在选择默认选项以外的选项(更改时)时让下拉列表的字段更改背景颜色。

function BackgroundChange(ddl) {
var value = ddl.srcElement.options[ddl.srcElement.selectedIndex].value;
var positionddlist = document.getElementById('positionddlist');
// 99 is the value assigned to the default option
if (value !== "99") {
alert('Changes from default values require comment.');
document.getElementById('positionddlist').style.backgroundColor = "orange";
} else {
document.getElementById('positionddlist').style.backgroundColor = "";
}
}

建议?

怕我有一些坏消息要告诉你。 LiveCycle Designer 中可用的 DOM 代码不是 HTML DOM,因此它不支持相同的方法和属性。 在这种情况下,没有 srcElement 属性,也没有 getElementById 方法。

[LiveCycle Designer Scripting Reference][1]中概述了可用的属性和方法的列表。

设置边框颜色的最简单方法是传入对象,然后使用 fillColor 设置值,如下所示:

DropDownList1.fillColor = "255,102,0";

就我个人而言,我非常依赖LiveCycle Designer的对象助手来指导我完成对象的属性。

您可以直接在"Change"事件下的 PullDown 对象上编写此脚本。当在对象上编写脚本时,关键字 this 绑定到该对象。您可以使用以下内容:

if(this.rawValue!="99"){
    //this.fillColor should also work
    this.border.fill.color.value = "255,255,0";
}
else{
    this.border.fill.color.value = "0,0,0";
}

如果您正在编写脚本对象函数,只需将 XFA 对象作为输入参数传入:

function changeDropDownFill(dropDown){
    if(this.rawValue!="99"){
        //this.fillColor should also work
        dropDown.border.fill.color.value = "255,255,0";
    }
    else{
        dropDown.border.fill.color.value = "0,0,0";
    }
}

并从更改事件调用它,如下所示:nameOfYourScriptObject.changeDropDownFill(this);