我正在使用带有JavaScript的LiveCycle LC设计器开发Adobe交互式表单。
//识别必填字段(可能是自由文本字段,下拉列表,复选框,我的意思是有3种可能性)并将黄色涂上颜色
var myArrayYellow = new Array();
var yellowFields;
yellowFields = my_required_fields_list_string.rawValue
myArrayYellow = yellowFields.split(" ");
for (var i = 0; i < myArrayYellow.length; i++) {
===&GT;在这一点上,我想以其有效字段/对象的形式检查[i]字段是否存在? bcz,我有机会在my_required_fields_list_string中获取不存在的字段,因此在为它们指定黄色之前,我想检查它们在表单上的有效性吗? 请等。让我知道JS的这个 //如果它是真的/找到的,那么只分配黄色如下
xfa.resolveNode("MY_ADOBE_FORM.." + myArrayYellow [i]).ui.oneOfChild.border.fill.color.value = "255,255,254"
};
出于其他目的,一些专家给了我一个JS,如下所示,我试图根据我的上述要求调整它,但它没有工作
function findNodes(vNode){
if (vNode.className === "field"){
if (vNode.isPropertySpecified("name") === true){
var myStateName = new RegExp(vNode.name);
var returnValue = GFL.search(myStateName);
if (returnValue != -1) {
this.ui.oneOfChild.border.fill.color.value = "192,192,192";
this.access = "readOnly";
} else {
this.ui.oneOfChild.border.fill.color.value = "255,255,255"; //whatever colour is open access
this.access = "open";
}
}
}
for (var a=0;a<vNode.nodes.length;a++) {
findNodes(vNode.nodes.item(a));
}
}
findNodes(xfa.form);
答案 0 :(得分:0)
如果我理解正确,那么在对它们执行操作之前,您正在尝试检查数组中的所有值是否有效。只需检查并确保它们不为空。
编辑:您也应该检查空字符串。
for (var i = 0; i < myArrayYellow.length; i++) {
if (!(myArrayYellow[i] == null || myArrayYellow[i] == "")){
//Do Stuff
}
}
答案 1 :(得分:0)
如果我了解您的问题,您需要检查xfa.resolveNode
是否返回了某些内容并从那里处理。
var node;
if ( (node=xfa.resolveNode("MY_ADOBE_FORM.." + myArrayYellow[i]) )!==null){
node.ui.oneOfChild.border.fill.color.value = "255,255,254"
}