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 を教えてください // true/found の場合は、以下のように黄色のみを割り当てます

    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

私が正しく理解していれば、配列内のすべての値が有効かどうかを確認してから、操作を実行しようとしています。それらがnullでないことを確認してください。

編集:おそらく空の文字列もチェックする必要があります。

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 に答える