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

lock dropdown menu once a selection is made

Explorer ,
Mar 11, 2019 Mar 11, 2019

In a PDF form, is there a script that will lock a dropdown menu once a selection is made so that no further changes are possible?

TOPICS
Acrobat SDK and JavaScript
2.8K
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 ,
Mar 11, 2019 Mar 11, 2019

Yes, Put this script into the Validation script for the dropdown.

event.target.readonly = (event.value.length > 0);

Did you want a way to unlock the field?

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

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
Explorer ,
Mar 12, 2019 Mar 12, 2019

Hi Thom, thanks for your response. Your script does work, however, I was a bit too brief in my original query. I've created two buttons on my PDF form—one to "lock" all fields and one to "unlock" all fields. I'm using the script below to lock all fields and a slightly modified version to unlock all. This script, however, does not work for the dropdowns. Is there a script I can add to what I already have? Thank you!

if (event.target.value != "Off") { 

this.getField("text").readonly = true; 

} else { 

this.getField("text").readonly = false; 

}

this.getField("Clear").readonly = true;

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 ,
Mar 12, 2019 Mar 12, 2019

Setting readonly back to false works in my testing. But there is another way. Make one of the dropdown entries a single space, so it looks blank. You could actually make this anything that works for being an unset value. Then change the validation code to use this value as the key for locking the field.

event.target.readonly = (event.value != " ");

Setting the field to this value will unlock it.

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

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
New Here ,
Jan 31, 2022 Jan 31, 2022

The script works exactly like I needed it to. Can you please share your tip for unlocking the field after you've made a selection in the dropdown and it is readonly?

 

Thanks for your 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 ,
Feb 01, 2022 Feb 01, 2022

It's in the replies above.  Locking the fields is the same as setting the "readonly" attribute.

 

 

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

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
New Here ,
Nov 05, 2024 Nov 05, 2024

Thom,

 

Could you 'spell out' what scrip to use and how to insert it into a PDF to unlock the dropdown, once we've used your scrip to lock a dropdown?

Thank you.

 

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 ,
Nov 05, 2024 Nov 05, 2024

Unlocking doesn't requires a script.

 

But if you need the user to be able to unlock it, or you want an automatic method, then a document action of some kind is needed.

One easy way to do a form reset. The form reset action can be added to a button without a script. This will set the field to the blank entry, which will unlock it. 

Another way to do this is to add a button and script to explicitly set the dropdown value to the blank entry. 

  this.getField("Dropdown1").value = " ";

 

Or another method is to set the readOnly property of the dropdown in the button script.

   this.getField("Dropdown1").readonly = false;

 

Which method is used depends on the way in which the form is to be used. Think about that first. 

 

 

 

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

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
New Here ,
Nov 05, 2024 Nov 05, 2024
LATEST

Ok, thanks.

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