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.