我的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 = "";
}
}
建议?
答案 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);