Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Set Destination When Creating Automated Button

Community Beginner ,
Aug 21, 2020 Aug 21, 2020

I've been using buttons to create custom buttons throughout my PDF. Is it possible to set a destination in the javascript or does that have to be manual?

TOPICS
Create PDFs , How to , PDF forms , Standards and accessibility
955
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
1 ACCEPTED SOLUTION
Community Expert ,
Aug 24, 2020 Aug 24, 2020

Change this line:

newButton.setAction("MouseUp", "this.getField("BACK-A" + aCount).setFocus();")"
To:

newButton.setAction("MouseUp", "this.getField(\"BACK-A" + aCount + "\").setFocus();")"

View solution in original post

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 21, 2020 Aug 21, 2020

JavaScript can only apply JS-based actions to a button. A script can be used to make the document switch to a specific page, or even to a specific page view, or a Named Destination, though. What exactly do you want to happen when the button is clicked?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 24, 2020 Aug 24, 2020

I'm using a single button that creates other buttons on click. I'd like those buttons to have a destination attached to them, so wherever I place them in the document, they can be navigated to. I see that I need to keep recalibrating my destination buttons every time more information created within my PDF. Could I use Javascript to create destinations? 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 24, 2020 Aug 24, 2020

No. However, you can jump to a button's location, even if it's not always the same, like this:

this.pageNum = this.getField("Button1").page;

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 24, 2020 Aug 24, 2020

I'll try that out for sure! Thanks for the help!

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 24, 2020 Aug 24, 2020

Another option is to use the setFocus command, which will cause the cursor to "jump" to the field, and to the page to change to where it's located:

 

this.getField("Button1").setFocus();

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 24, 2020 Aug 24, 2020

 

 

I've been trying to use the setFocus method dynamically by assigning it to a "setAction." I placed in my new button and each time I try it fails to work. 

 

 Below is where I want setFocus, a new button would be able to navigate to a reference button called (i.e. "BACK-A1, A2, A3, etc.")

 

Is focus only used once throughout the document? I would love to assign each button to its own unique "focus point."

 

 function CreateField(){

     var newButton = this.addField("newButton" + aCount, "button", this.pageNum, [0, 20, 80, 0]);

     aCount++

     newButton.buttonSetCaption("FINDING" + " A-" + aCount);

    ** Below is the issue **

     newButton.setAction("MouseUp", "this.getField("BACK-A" + aCount).setFocus();")"

     return newButton;

}

CreateField();

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Aug 24, 2020 Aug 24, 2020

I'd expect to see plenty of errors in the JavaScript log from this code. Do you see any?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 24, 2020 Aug 24, 2020

Change this line:

newButton.setAction("MouseUp", "this.getField("BACK-A" + aCount).setFocus();")"
To:

newButton.setAction("MouseUp", "this.getField(\"BACK-A" + aCount + "\").setFocus();")"

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 24, 2020 Aug 24, 2020
LATEST

That worked perfectly. Thank you! I always forget the "\".

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines