Xfa.host.setfocus -- to an object e.g. picture or static text etc?

I can get the setfocus to target another input field - but can work out how (or if it can) to get it to focus the screen to an image or static text component.
The path selecton tool in the script panel just stays that impassive red circle
issue arises as selections from radio group opens largish subform with focus set to it's first field - and given layout radio list is lost out the top of the screen (as it were) so we put in a "made the wrong choice? click here to go back" style of button on the top of each subform -
as the radio button selection displays the subfields using the radiobuttons as the target does not work (get into an event loop)
so we need something else to target off the go back - i was hoping the title graphic image or static text but cant work it out
i though the documentation said focus could do images but i cant get it to,
thanks for any pointers/code line

Hi,
I don't think you can focus on static objects (static text, static images).
I think the down and dirty workaround is your best option. Maybe make the button very small (0.01in) and you can always place a static image (icon) over it to mask the button.
N.

Similar Messages

  • Xfa.host.SetFocus question.

    I have a code on Exit event of the field that checks if 5 digit US ZIP code, 5 digit US ZIP code + 4, and 6 digit alphanumeric Canadian Postal Code.
    If user enters valid 5 digits code, then I set focus to specific field-FField1. Code is simple and it works. What does not work is, if I tab out , without entering anyting in the Zip code, the focus is set to some other field, not FField1. How can I force it with the code that focus is set to FField1 all the time.
    Code is simple:
    var regExpDate = /^\^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$ $/;
    var vMatched = this.rawValue.match(regExpDate);
    if (!vMatched){
    this.rawValue=null;
    xfa.host.messageBox("Enter the following format: 99999 or 99999-9999 or A9A 9A9 );
    xfa.host.setFocus(this);
    else
    xfa.host.setFocus(form1.subform1.FField1);

    Hi again 1996,
    You can use setFocus multiple times in the exit event, and the last one that is called is where you end up. I would suggest putting the 'default' tab before all of your logic, to ensure that it's the one that gets called when the field is valid:
    i.e.:
    xfa.host.setFocus(form1.subform1.FField1);
    var regExpDate = /^\^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$ $/;
    var vMatched = this.rawValue.match(regExpDate);
    if (!vMatched){
    this.rawValue=null;
    xfa.host.messageBox("Enter the following format: 99999 or 99999-9999 or A9A 9A9 );
    xfa.host.setFocus(this);
    This way, unless vMatched is true and the second setFocus is called to override the first, your user should always be sent to FField1.
    I know that this isn't a part of your question, but I'd like to suggest avoiding the 'thou shalt not pass until...' situations. What if your user doesn't know the postal/zip code, and wants to fill in the rest of the form before finding it? They could enter dummy data to get past your requirement, but then there's a chance that they'll forget to replace it with the real value. Altogether, I think it's better to check for invalid data in the pre-save/pre-submit events, and warn them of the required fields then.
    Also, consider only calling setFocus for when the user is tabbing away from fields. If you manually call setFocus to control the tab order from all fields (I do this for all of my forms, as I find that dynamic forms don't play nice with the tab order) then use:
    if (xfa.event.commitKey == 3) then
         xfa.host.setFocus("$.parent.NextFieldName");
    endif
    This way, if the user clicks on another field that they want to fill next, they won't be redirected to the one you chose for them.
    Sorry for the unsolicited advice... These were just some of the things that I've had to deal with in the past.
    - Scott

  • Xfa.host.setFocus(); beep problem

    xfa.host.setFocus(Expand); is placed under text field. when cursore goes into the "expand" field, a beep is created.
    How can I stop it?

    To be more precise what stephen said,
    Go to your volume properities and change the settings for ALERTS, WARNINGS and other options.
    This will be stopped for sure.
    Thanks
    Pravee

  • SetFocus on a object in a copied subform

    Hello!
    Inside a subform I have a "Copy" button that copy the entire subfom.
    What I want: when user press "Copy", except for coping the subform, I want to set focus on a object (any object) inside newly copied subform.
    Is it possible?

    Hi,
    Yes you can, you just need to count the current number of instances of the subform (data) and then set the focus to a field in that instance:
    _data.addInstance();
    var i = _data.count - 1;
    xfa.host.setFocus(xfa.resolveNode("data[" + i + "].firstName"));
    The underscore before the name of the subform is shorthand for "instanceManager".
    Sample here: https://acrobat.com/#d=2pAry7PSy7HdLPidEU2XHQ
    Hope that helps,
    Niall

  • Xfa.host.messageBox

    I am trying to get a message to appear if someone tries to enter enter data in a drop down list before entering in formation in a previous list.  I have two drop down lists: ServiceType[0] and Action[0]. I have this code set up in the change event:
    topmostSubform.Page2.Action[0]::change - (JavaScript, client)
     if  (topmostSubform.Page2.ServiceType[0].rawValue == null){
    xfa.host.messageBox("You must select a Service Type Value"
    , "Error", 3, 1);}
    When I select something from the Action[0] list, nothing happens when I have not selected anything in the ServiceType[0] list. What am I missing please?

    Hm,
    generally your scripts look fine.
    But, JavaScript does not support the instance accessor [0] you used, only FormCalc does.
    To use them in JavaScript you need the xfa.resolveNode method like xfa.resolveNode(" topmostSubform.Page2.ServiceType[0]").
    Also, to resolve the first instance of an object, which has always the accessor [0], you don't need to describe the accessor.
    So topmostSubform.Page2.ServiceType is the same as topmostSubform.Page2.ServiceType[0]
    Just a hint for your script in JavaScript.
    if (xfa.resolveNode("topmostSubform.Page2.ServiceType").rawValue == "" || xfa.resolveNode("topmostSubform.Page2.ServiceType").rawValue == null) then
         xfa.host.messageBox("You must select a Service Type Value", "Error", 3, 0)
         xfa.host.setFocus("topmostSubform.Page2.ServiceType")
         xfa.event.change = ""
    or in FormCalc.
    if (topmostSubform.Page2.ServiceType.rawValue == "" or topmostSubform.Page2.ServiceType.rawValue == null) then
         xfa.host.messageBox("You must select a Service Type Value", "Error", 3, 0)
         xfa.host.setFocus("topmostSubform.Page2.ServiceType")
         xfa.event.change = ""
    endif

  • How to change appearance of xfa.host.messagebox

        Is there anyway to apply a different look to the xfa.host.messagebox ?  It is pretty, um what is the word ..... -- ugly. That is the word
    Any help would be very appreciated.
    Thanks

    Hi,
    The url that Steve gave above takes you to the Help file for LC Designer.
    You put the messageBox line within your script when you want to alert the user to something or to give them a choice. for example you could put the script within a calculate event to let the user know the value of a hidden variable:
    xfa.host.messageBox("This is a message", "This is a title", 3, 1);
    The help file sets out the four different options for the last two parameters (which can be used in any combination).
    xfa.host.messageBox("This messageBox uses:\n\nParameter 3 = 1 (Warning) and Parameter 4 = 1 (OK, Cancel)", "Hello World!", 1, 1);
    The "\n" will insert a return (new line).
    Scripting for additional features within a dialogue window can be achieved using the Javascript Dialog Object; however this is getting quite advanced. The AcroDialog product from Windjack Solutions does make this process easier.
    The messageBox returns a number depending on which button the user clicks:
    Returns 1 if the user clicks OK;
    Returns 2 if the user clicks Cancel;
    Returns 3 if the user clicks No;
    Returns 4 if the user clicks Yes;
    On this basis you can script actions depending on which button the user clicks in your messageBox, by asigning the returning value to a variable and then looking at the value of the variable. For example in the click event of a button on the form:
    var nButton = xfa.host.messageBox("You are about to delete this row.\n\nDo you want to continue?", "DELETE ROW", 3, 2);
    if (nButton == 4) // Hitting the Yes button returns 4
         _dyndetail.removeInstance(this.parent.index); // proceed with delete
    The above deals with LiveCycle Designer. If you are scripting exclusively in Acrobat then you could use the app.alert(); method, to display your message.
    Hope this helps,
    Niall

  • Xfa.host.importData()

    Hi,
    I have stand-alone form PDF file, reader-extended, I open it with Reader-X,
    and I have a piece of javascript behind a button on the form that calls the importData() method,
    to import a XML data file.
    say, my form has 6 fields: a, b, c, x, y, z
    and the XML file has data in a, b, c, d, e, f
    it appears that after the importData() call, my form fields a, b, c got populated with data from the XML file,
    but the fields x, y, z got wiped out at the same time.  they become "null".
    Is it supposed to work like that?
    or maybe I have done something wrong?
    If it's supposed to work that way, is there a way to keep the data in x, y, z after the importData() call?
    is there another method that I can use to keep the original data in x, y, z?
    thanks

    Hi,
    If you open the form in LC Designer and select x, y, and z fields. Go to the Object > Binding palette and select the binding as None. This means that the fields will not take part in an XML data import OR export. This might suit your requirements, depending on how you are processing returning data.
    If you need to export data in the x, y, and z fields, then change the binding back to Normal/Name.
    As a workaround, you could script variables to have the values of the x, y and z fields BEFORE the import script. Then repopulate the fields after import. Something like this:
    // declare the variables
    var myX = TextField1.rawValue;
    var myY = TextField2.rawValue;
    var myZ = TextField3.rawValue;
    // import the xml
    xfa.host.importData();
    // repopulate fields
    TextField1.rawValue = myX;
    TextField2.rawValue = myY;
    TextField3.rawValue = myZ;
    Hope that helps,
    Niall
    Assure Dynamics

  • Use xfa.host.beep to trigger two consecutive beeps?

    Seems like this should be pretty straight forward but apparently not.
    I've tried various combinations, placing xfa.host.beep(1) in:
    - consecutively in the click event of button;
    - separately in the mouseUp and click event;
    - placing xfa.host.beep into a function and calling the function twice
    - calling the function then xfa.host.beep(1);
    Even tried xfa.host.beep(1) in the click event of Button1 and then executing the click event of hidden Button 2, which contained xfa.host.beep(1).
    Any work around suggestions? Thanks!
    Brian

    Hi,
    You could pass in the xfa.host object so you could call the beep() method.  But in a custom dialog the setTimeOut doesn't work, so you could try looping for half a second between beeps.
    function dialog()
    var dialogDescriptor =
      description:
       name: "Beep Test",
       elements: [
         type: "button",
         item_id: "beep",
         name: "Beep Beep",
         type: "ok",
      beep : function(dialog)
       dialogObject.host.beep(1);
       var startTime = Date.now();
       while (Date.now() - startTime < 500) { }
       dialogObject.host.beep(1);
      validate : function(dialog)
       //add validate code here
       return true;
    var dialogObject =
      execDialog: function() { return app.execDialog(dialogDescriptor); },
    return dialogObject;
    var d = dialog();
    d.host = xfa.host;
    d.execDialog();
    Acrobat also has an app.beep(1) which you could use.
    Regards
    Bruce

  • Acrobat Reader 7.0.3 and xfa.host.exportData("",0);

    I have a lot of forms that I have made with Designer 7.0. Each of them has 'Export XML' button that has the following code
    xfa.host.exportData("",0);
    So far people with Acrobat Reader clients have been able to export form content to XML file, but now it seems that after some update (7.0.3) this is no longer possible?
    Is this really so?
    Br,
    Kari

    Hi!
    No, it is no so.
    At least it works fine with my forms. I have trouble with the
    xfa.host.importData();
    which gives me an error message even though it works.
    Håkon

  • Xfa.host.gotoURL() in Adobe Reader / Dynamic Tables with AcroForms?

    Hi All,
    I have a dynamic table in my LifeCycle form. Each table row contains a button that links to an external PDF file (using xfa.host.gotoURL). The links work fine in Acrobat 8 Pro, so far, so good... But when clicking the buttons in Reader 8, nothing happens. No error message or security warning, nothing...
    I searched the web and some forums for this problem and by reading between the lines of some posts I came to guess that my LifeCycle form will not work in Adobe Reader unless I purchase the respective LifeCycle Extensions license... :-/
    What exactly are my options now? Can I get the buttons to work in Adobe Reader somehow (using JS) without having to purchase the Reader Extensions? Or can I somehow recreate the dynamic table of the LifeCycle form using AcroForms in Acrobat 8 Pro to avoid the problem? If so, how do I add such a table using Acrobat's form tools...?
    Thanks for your help,
    Marcus

    Normal http://... URLs do indeed work, but relative URLs pointing to local files do not work with the Adobe Reader on my machine. I thought this might be due to a security restriction that can only be overcome by using the Reader Extensions...?
    Is there any other way of linking to other PDFs on the local machine than the gotoURL method? I also tried launchApp(), but it didn't work either.
    I currently use this statement to link to PDFs in a subfolder:
    xfa.host.gotoURL("TrainingGuides/"
    + docName + ".pdf", 1);

  • Xfa.host.exportData function

    Hello all,
    I have a problem related to the function xfa.host.exportData:
    My scenario is the next:
    - I have done a form with several fields.
    - A determined user open this form and fill up the fields.
    - That user, is able to send form via PDF or save as XML.
    In Acrobat Professional 8, there is no problem in order to do these functionalities but in Acrobat Reader 9, the user cannot save the data as XML.
    I placed the function xfa.host.exportData("",0) in the click event of a check box.
    I would like to know if there is any way to get the same functionality in Adobe Reader than Adobe Professional.
    Many thanks in advance.
    Best regards.

    Hi,
    Unless the form is Reader Enabled in LC Reader Extensions ES2, then users with Reader will not be able to export XML data.
    There is a summary and PDF here:
    http://www.assuredynamics.com/index.php/2010/11/using-livecycle-forms-in-acrobat-and-reade r/
    So the only way you will get this to work in Reader is to Reader enable the form in LC Reader Extensions ES2. Reader enabling in Acrobat Professional 8 will not work.
    Hope that helps clear that up,
    Niall
    Assure Dynamics

  • Xfa.host.exportData and Reader

    I've created a dynamic xml PDF form in Adobe LiveCycle designer.
    Inside the form I placed a button and on the click event I call xfa.host.exportData("",0);
    Then opened the file in Acrobat Professional, clicked the button and it works Yay! Then I Saved Other as Reader Extended PDF.
    Opened the newly saved file in Reader XI and when I click the button the JavaScript console spit out the following error:
    NotAllowedError: Security settings prevent access to this property or method.
    Doc.exportXFAData:-1:XFA:form1[0]:page3[0]:Button1[0]:click
    This is really annoying and could use some guidance.

    Take a look at the documentation for Doc.exportXFAData():
    http://help.adobe.com/livedocs/acrobat_sdk/11/Acrobat11_HTMLHelp/wwhelp/wwhimpl/common/htm l/wwhelp.htm?context=Acrobat11_HTMLHelp&file=JS_API_AcroJS.89.470.html
    As you can see from the "F" in the Quickbar, the document would need "Forms
    Rights" for this to work in Reader (
    http://help.adobe.com/livedocs/acrobat_sdk/11/Acrobat11_HTMLHelp/wwhelp/wwhimpl/common/htm l/wwhelp.htm?context=Acrobat11_HTMLHelp&file=JS_API_AcroJSPreface.88.8.html).
    You need LiveCycle Reader Extensions to assign those rights.
    Unless you can assign form rights to your document, this will not work in
    Reader.

  • Xfa.host.resetData() error message

    Some users, but not all, are getting an error message "Please select the Client's locale" when they press a button that has a single line of code on its click event: xfa.host.resetData(). The button has the default locale selected in its properties. The form has had the Reader extensions added, but the same thing is happening on the non-extended form.
    The users are using Acrobat Reader 7.0.5. Users with Reader 9 or Acrobat Pro 9 are not having the same issue. I could change the button's locale to English (USA), but that doesn't fix it (I tried) and all the other buttons are set to default locale and work fine.
    This is an 11th hour glitch -- we're supposed to distribute the form tomorrow if at all possible and this is the first time I've seen this.
    Any help greatly appreciated!

    There is a message defined in the mandatory field (State). I am wondering if they have not selected a state and this message is getting displayed (have you tied this field to any others in a calculation)? Just to confirm, change the text of the message and see if it happens again with the new message. It is not happening to me and I am using Acrobat 9 .... also see which version of Acrobat/Reader the troubled users are using.

  • Getting rid of "Warning:  JavaScript Window" when using xfa.host.response()

    When I use xfa.host.response() I get that javascript warning. Is there a way to get rid of it?
    Thanks.

    The only way I know of to get rid of this warning is to Certify the document. Once the document has been certified, any javascript interaction either through the Dialog Manager or xfa.host.response will not have the warning.
    However, The only way to certify the document is to use Document Security Server or manually through Acrobat by adding a blank signature.
    I also dont know if this will work with Dynamic forms without breaking the certification. It worked in Static / Acrobat 6 compatible PDF's.
    Any scripting or dynamic rebuild of the form will break the certification and the message comes back.
    So basically, stick with the warning for now or else you need to make sure you revalidate the signature after EVERY piece of script using the signatureValidate() method of the AcroForm Field.

  • Xfa.host.beep

    I have a button that I want to make a Windows error sound when certain conditions are met. I've tried variations of xfa.host.beep() (e.g. xfa.host.beep("1"), xfa.host.beep("2")), but they never generate any sound. I tried both Acrobat and Reader (11.0.09) static and dynamic forms.

    Well actually, they didn't. I looked at my sound mixer (Windows 7)
    System sounds were disabled...

Maybe you are looking for