Acrobat Combo Box返回Item Selected而不是export value

时间:2016-08-26 17:16:51

标签: javascript adobe

有没有更好的方法来获取ComboBox的选择文本而不是导出值?

这是我到目前为止所发现的。

//  combobox Return the export value 
var expValue = this.getField("Dropdown1").value;

//  combobox return the Selection by Indice
var i = this.getField("ItemType1").currentValueIndices;
console.println(this.getField("ItemType1").getItemAt(i,false));

试着找到一种更简单的方法。 这不是事件触发代码,因此更改'财产,并且' changeEX'财产不起作用。

3 个答案:

答案 0 :(得分:0)

你拥有的是它是如何完成的。您可以创建一个文档级函数,使其更容易。

答案 1 :(得分:0)

感谢您的回复 如果我不得不多次返回选择,我会为此创建一个Doc Level功能。所以,我相信它会如何完成。

function ReturnSelection(fieldName){
    // Check that Field is ComboBox or List Box
    var fldField = this.getField(fieldName);

    if(fldField != null && (fldField.type === "combobox" || fldField.type === "listbox")){
        //  combobox return the Selection by Indice
        var i = fldField.currentValueIndices;
        return fldField.getItemAt(i,false);

    }else{
        return "";
    }
 }

未经测试。

并返回多个选择

function ReturnSelection(fieldName){
    // Check that Field is ComboBox or List Box
    var fldField = this.getField(fieldName);
    if(fldField != null && (fldField.type === "combobox" || fldField.type === "listbox")){
        //  combobox return the Selection by Indice
        var i = fldField.currentValueIndices;
        if(typeof i == "number"){
            return fldField.getItemAt(i,false);
        }else{ // Deal With Multi Selections
            var arr = [];
            for(var a = 0; a < i.lenght){
                arr.push(fldField.getItemAt(i[a],false));
            }
            return arr;
        }   
    }else{ // Not a Combo or list box
        return "";
    }
 }

答案 2 :(得分:0)

看起来不错。我建议处理getField方法返回null的情况,如果你指定一个不存在的字段并且在某些其他情况下会发生这种情况。