Javascript无法在Livecycle中运行

时间:2016-02-10 16:16:24

标签: javascript livecycle livecycle-designer

我的JavaScript适用于JSFiddle但不适用于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 = "";
}
}

建议?

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

答案 1 :(得分:0)

您可以直接在“更改”事件下的“on”下拉对象中编写此脚本。在脚本“on”上编写对象时,关键字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);