我怎么知道它在JS中的有效性?

时间:2012-10-22 15:43:02

标签: javascript

我正在使用带有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);

2 个答案:

答案 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"
}