You're on your way to the next level! Join the Kudos program to earn points and save your progress.
Level 1: Seed
25 / 150 points
Next: Root
1 badge earned
Challenges come and go, but your rewards stay with you. Do more to earn more!
What goes around comes around! Share the love by gifting kudos to your peers.
Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!
Join now to unlock these features and more
Hi,
I am having trouble disabling a cascading element child element in Script-Runner behaviours. When selecting this element with this script:
def childElement = getFieldById("customfield_13062:1")
childElement.setHidden(false)
childElement.setRequired(true)
childElement.setReadOnly(false)
The following error appears in the browser console:
Uncaught (in promise) Error: Syntax error, unrecognized expression: unsupported pseudo: 1-field
at re.error (batch.js?locale=en-US:54:8303)
at PSEUDO (batch.js?locale=en-US:54:11353)
at xe (batch.js?locale=en-US:54:15506)
at re.compile (batch.js?locale=en-US:54:16952)
at re.select (batch.js?locale=en-US:54:17621)
at Function.re (batch.js?locale=en-US:54:2951)
at u.find (batch.js?locale=en-US:295:3640)
at u.fn.init.find (batch.js?locale=en-US:54:19592)
at u.fn.find (batch.js?locale=en-US:297:4559)
at e.getFieldForCss (batch.js?agile_global_admin_condition=true&baseurl-check-resources=true&healthcheck-resources=true&jag=true&jaguser=true&jira.create.linked.issue=true&locale=en-US&richediton=true:5093:103437)
It seems that the element "customfield_13062:1" is being interpreted as a CSS pseudo-class and breaking the validation script. How can I work around this?
Thank you.
Regards.
Hi @Daniel R_,
your approach is correct but, according to HTML specs, the select tag in HTML doesn't have a readonly attribute, only a disabled attribute; so it doesn't work. A good workaround to do this, is the following:
def childElement = getFieldById("customfield_13062:1")
// To Disable
childElement.setDescription("<style onload=\"document.getElementById(\'customfield_13062:1\').setAttribute(\'disabled\',\'\')\"></style>")
// To Enable
//childElement.setDescription("<style onload=\"document.getElementById(\'customfield_13062:1\').removeAttribute(\'disabled\')\"></style>")
Sadly it appears that ScriptRunner's Behaviour getFieldById is not correctly sanitized and will throw an exception if trying to select a field with a colon in it's name.
Thanks for your help anyway.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.