Copy link to clipboard
Copied
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?
Copy link to clipboard
Copied
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?
Copy link to clipboard
Copied
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;
Copy link to clipboard
Copied
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.
Copy link to clipboard
Copied
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!
Copy link to clipboard
Copied
It's in the replies above. Locking the fields is the same as setting the "readonly" attribute.
Copy link to clipboard
Copied
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.
Copy link to clipboard
Copied
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.
Copy link to clipboard
Copied
Ok, thanks.