0

我正在使用带有 JavaScript 的 LiveCycle LC 设计器开发 Adob​​e 交互式表单。

// 确定必填字段(可能是自由文本字段、下拉菜单、复选框,我的意思是有 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++)     {

===> 在这一点上,我想检查 [i] 字段是否存在,它是否是一个有效的字段/objetc?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);
4

2 回答 2

0

如果我理解正确,您将尝试在对数组执行操作之前检查数组中的所有值是否有效。只需检查并确保它们不为空。

编辑:您可能也应该检查空字符串。

for (var i = 0; i < myArrayYellow.length; i++)     {
    if (!(myArrayYellow[i] == null || myArrayYellow[i] == "")){
        //Do Stuff
    }
}
于 2012-10-22T15:45:37.990 回答
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"
}
于 2012-10-22T15:50:07.383 回答