XFA-skriptning av valobjekt

Enhet: HPDFXFARuntime

Ett fält med ui.choiceList exponerar valobjektmetoder under nativ JavaScript- och FormCalc-händelsekörning, inklusive upprepade fältinstanser och alias som hålls kvar av skriptobjekt

Metoder och egenskaper

MedlemBeteende
lengthSkrivskyddat antal aktuella exportobjekt
selectedIndexFörsta valda nollbaserade index, eller -1 när inget är valt; tilldelning av ett negativt heltal rensar valet, medan ett icke-negativt värde utanför intervallet eller ett ickenumeriskt värde kastas innan något ändras
getDisplayItem(index)Visningstexten vid indexet, eller null när indexet är ogiltigt
getSaveItem(index)Exporttexten vid indexet, eller null när indexet är ogiltigt
boundItem(display)Exporttexten för den första exakt matchande visningstexten, eller null när ingen visningstext matchar
getItemState(index)Om objektet är valt; ett ogiltigt index kastar
setItemState(index, selected)Uppdaterar objektets valstatus; att välja ett objekt ersätter det tidigare valet för ett fält med enkelval och bevarar övriga valda index för ett fält med flerval
addItem(display, bound)Lägger till ett objekt utan att ändra befintligt valda objekt; utelämnas det andra argumentet används en tom exportsträng
deleteItem(index)Tar bort ett objekt och skiftar senare index men bevarar identiteten hos kvarvarande objektalias; returnerar false för ett ogiltigt index
clearItems()Tar bort aktuella objekt och rensar valet; en explicit tom runtime-lista förblir tom efter sparad och omlästning
setItems(text, columns)Ersätter aktuella objekt från kommaseparerade kolumner och rensar valet; columns har standardvärdet 1, en rad med en kolumn ger både visnings- och exporttext, och en längre rad använder sin första kolumn som visningstext och sista kolumn som exporttext; returnerar false om kolumnantalet är ogiltigt eller inte delar fältantalet i inmatningen

Index är heltal och tvingas aldrig om från strängar; objektmetoder kräver sitt dokumenterade antal argument, där det valfria andra argumentet accepteras av addItem och setItems

Objektvärden bevarar Unicode, inledande och avslutande mellanslag, explicita tomma exportvärden och radbrytningar; ogiltiga XML-kontrolltecken och oparade UTF-16-surrogat avvisas innan listan muteras

Omedelbart tillstånd och alias

Nya objekt syns omedelbart via objektmetoderna och egenskaps-DOM:en, och ett borttaget objektalias kan inte omdirigeras till ett kvarvarande objekt som flyttas in i det borttagna indexet

Ersättning eller rensning av listan skapar distinkta ersättningsidentiteter; kvarhållna skriptobjektalias till borttagna objekt misslyckas vid senare läsningar och skrivningar, medan kvarvarande alias fortsätter att adressera samma objekt över händelsekörningar

En direkt rawValue-tilldelning, skrivning till bunden Data DOM, publikt widget-värdecommit eller skalärmutation av exportobjekt ogiltigförklarar cachade explicita index, även tilldelningar som bevarar samma råa sträng

Persistens och exakt val

SaveToBytes skriver de faktiska formulärobjekten per instans och synkroniserade värden; att ändra en upprepad instans bevarar övriga instanser och deras datascopar

Dubbletter och tomma exportvärden kan väljas med exakta index via objekt-API:t; det sparade formulärfältet registrerar de kanoniska indexen och matchande råvärde i valfria attribut i namespacet urn:hotpdf:xfa:runtime

Standard-XFA-objekt och värdenoder förblir närvarande oberoende av dessa valfria attribut; senare värdeskrivningar ogiltigförklarar attributen så att inaktuella index inte kan välja fel dubbletterexport

Den nativa PDF-konsumenten skriver matchande /Opt-export-/visningspar, exakta /I-index och /V-strängar eller arrayer samt bygger appearance från de valda visningsetiketterna

Transaktioner och gränser

Objektändringar ingår i den befintliga händelsetransaktionen och skriptjournalen; ett nativt värdegränsfel, anroparavbrott eller ohanterat händelseundantag återställer sparad XDP, skriptets lexikala tillstånd och bindningar före ett senare omförsök

Nodallokeringar, indatakolumner, UTF-8-värden, XML-operationspayload, nativ egenskapstraversering och kloning behåller konfigurerade skript- och runtime-budgetar samt avbrottskontroller

Exempel

var list = this.parent.choice;
list.clearItems();
list.addItem("Display A", "same");
list.addItem("Display B", "same");
list.selectedIndex = 1;
if (list.getDisplayItem(list.selectedIndex) !== "Display B")
    throw new Error("Unexpected selected label");

För FormCalc-variabler som behåller ett fält i stället för dess skalära värde, använd var list = Ref($.parent.choice) innan objektmetoder anropas

Metodvokabulären och kolumnargumenten följer Adobe Designer Scripting Reference; runtimen använder ersättningssemantik för setItems, enligt Adobes HTML5 forms scripting support