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

Checkbox or Radio button ?

Explorer ,
Jan 09, 2024 Jan 09, 2024

Copy link to clipboard

Copied

Dear,

i have Three questions.

 

A)

When we use the switch and case , it's possible to put mores arguments on the case ? 

exple : case "A" & "B" or case "A" || "B" 

i'm asking because for exple, A=not good   and is i choose it, the script can't enable one textfiel, and B=good can enable the textField.

 

B)

I have a dropdown and the value displayed will depend on the choice of checkbox or radio button.
I have two buttons: yes and no.

if I check Yes, the value in the dropdown or (Text flield) should be, for example, "validated" with a green background.
if I check No, the value in the dropdown or (Text flield) should be, for example, "Rejected" with a Red background.

by default, the two checkboxes or radio buttons are not activated and the dropdown or (Text flield) must remain hidden.

I don't know how to manage this.

 

C)

when saving the document as a pdf, how do you ensure that the imported images are not too compressed? because after printing, the quality is not at all good

 

 

Thank you in advance and happy new year to all.

TOPICS
How to , JavaScript , PDF , PDF forms

Views

564

Translate

Translate

Report

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 ,
Jan 09, 2024 Jan 09, 2024

Copy link to clipboard

Copied

A)

To use multiple cases in a switch statement, do it like this:

case "A":
case "B":
this.getField("A").value = "Good";
break;

If you want to add multiple statements to one 'case', you can do it like this:

case "A":
this.getField("A").value = "Good";
this.getField("B").value = "Not Good";
break;

B)

Let's say you have radio buttons named "Group1" with choices "Yes" and "No", you can use this as custom calculation script of text field where you want to show value/change color/hide:

var rb = this.getField("Group1").valueAsString;
if(rb === "Yes"){
 event.target.display = display.visible;
 event.value = "Validated";
 event.target.fillColor = color.green;}
else if(rb === "No"){
 event.target.display = display.visible;
 event.value = "Rejected";
 event.target.fillColor = color.red;}
else {
 event.target.display = display.hidden;}

 

View solution in original post

Votes

Translate

Translate

Report

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 ,
Jan 09, 2024 Jan 09, 2024

Copy link to clipboard

Copied

A) Please read the Core JS documentation.   Arguments for the "case" statement must be a constant.  If you need something more complicated, use an "if" statement.  

 

B) Why a dropdown? doesn't seem necessary.

 

C) There's nothing you can do about importing images. Since Acrobat 10 or 11 the import has been crap. 

 

 

Thom Parker - Software Developer at PDFScripting
Use the Acrobat JavaScript Reference early and often

Votes

Translate

Translate

Report

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
Explorer ,
Jan 09, 2024 Jan 09, 2024

Copy link to clipboard

Copied

thank you @Thom Parker   for taking the time to reply.
it helped me understand other mistakes I was making.

Votes

Translate

Translate

Report

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 ,
Jan 09, 2024 Jan 09, 2024

Copy link to clipboard

Copied

A)

To use multiple cases in a switch statement, do it like this:

case "A":
case "B":
this.getField("A").value = "Good";
break;

If you want to add multiple statements to one 'case', you can do it like this:

case "A":
this.getField("A").value = "Good";
this.getField("B").value = "Not Good";
break;

B)

Let's say you have radio buttons named "Group1" with choices "Yes" and "No", you can use this as custom calculation script of text field where you want to show value/change color/hide:

var rb = this.getField("Group1").valueAsString;
if(rb === "Yes"){
 event.target.display = display.visible;
 event.value = "Validated";
 event.target.fillColor = color.green;}
else if(rb === "No"){
 event.target.display = display.visible;
 event.value = "Rejected";
 event.target.fillColor = color.red;}
else {
 event.target.display = display.hidden;}

 

Votes

Translate

Translate

Report

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
Explorer ,
Jan 09, 2024 Jan 09, 2024

Copy link to clipboard

Copied

Thanks @Nesa Nurani ,

 

your second case solved my problem.
and your answer to question B works perfectly.

thanks again for the help

Votes

Translate

Translate

Report

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 ,
Jan 09, 2024 Jan 09, 2024

Copy link to clipboard

Copied

LATEST

C)  

Try these settings but it depends on the method used because importing an image can be done in several ways.

"There are no settings that can be edited in …" means that images in this format are not recompressed and remain intact.

 

Capture_2401100045.pngexpand image

Votes

Translate

Translate

Report

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