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
| Medlem | Beteende |
|---|---|
length | Skrivskyddat antal aktuella exportobjekt |
selectedIndex | Fö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