diff --git a/core/src/main/resources/hudson/model/BooleanParameterValue/value.jelly b/core/src/main/resources/hudson/model/BooleanParameterValue/value.jelly
index ba45b2262ce7..3d249ff3abb2 100644
--- a/core/src/main/resources/hudson/model/BooleanParameterValue/value.jelly
+++ b/core/src/main/resources/hudson/model/BooleanParameterValue/value.jelly
@@ -28,6 +28,7 @@ THE SOFTWARE.
xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project">
-
+
+
diff --git a/core/src/main/resources/hudson/model/ParametersAction/index.jelly b/core/src/main/resources/hudson/model/ParametersAction/index.jelly
index c8e8bf3aaff6..fe9a2f04154a 100644
--- a/core/src/main/resources/hudson/model/ParametersAction/index.jelly
+++ b/core/src/main/resources/hudson/model/ParametersAction/index.jelly
@@ -35,6 +35,7 @@ THE SOFTWARE.
${title}
+
diff --git a/core/src/main/resources/hudson/model/StringParameterValue/value.jelly b/core/src/main/resources/hudson/model/StringParameterValue/value.jelly
index e3de9ff09a34..7c5328f667bf 100644
--- a/core/src/main/resources/hudson/model/StringParameterValue/value.jelly
+++ b/core/src/main/resources/hudson/model/StringParameterValue/value.jelly
@@ -24,10 +24,11 @@ THE SOFTWARE.
-
-
-
-
+ xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"
+ xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project">
+
+
+
+
+
\ No newline at end of file
diff --git a/core/src/main/resources/hudson/model/TextParameterValue/value.jelly b/core/src/main/resources/hudson/model/TextParameterValue/value.jelly
index 8ae92827ade1..c46b88498769 100644
--- a/core/src/main/resources/hudson/model/TextParameterValue/value.jelly
+++ b/core/src/main/resources/hudson/model/TextParameterValue/value.jelly
@@ -26,8 +26,9 @@ THE SOFTWARE.
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/core/src/main/resources/lib/form/checkbox.jelly b/core/src/main/resources/lib/form/checkbox.jelly
index de831954cafc..5b9807c501f8 100644
--- a/core/src/main/resources/lib/form/checkbox.jelly
+++ b/core/src/main/resources/lib/form/checkbox.jelly
@@ -83,9 +83,9 @@ THE SOFTWARE.
name="${name}"
value="${attrs.value}"
title="${attrs.tooltip}"
- onclick="${attrs.readonly=='true' ? 'return false;' : attrs.onclick}" id="${attrs.id}" class="${attrs.class} ${attrs.negative!=null ? 'negative' : null} ${attrs.checkUrl!=null?'validated':''}"
+ onclick="${attrs.readonly=='true' ? null : attrs.onclick}" id="${attrs.id}" class="${attrs.class} ${attrs.negative!=null ? 'negative' : null} ${attrs.checkUrl!=null?'validated':''}"
checkUrl="${attrs.checkUrl}" checkDependsOn="${attrs.checkDependsOn}" json="${attrs.json}"
- disabled="${readOnlyMode ? 'true' : null}"
+ disabled="${readOnlyMode or attrs.readonly=='true' ? 'true' : null}"
checked="${value ? 'true' : null}"/>
diff --git a/core/src/main/resources/lib/form/radio.jelly b/core/src/main/resources/lib/form/radio.jelly
index a920c99ee216..2f085d3f6449 100644
--- a/core/src/main/resources/lib/form/radio.jelly
+++ b/core/src/main/resources/lib/form/radio.jelly
@@ -24,7 +24,7 @@ THE SOFTWARE.
- tag that takes true/false for @checked, which is more Jelly friendly.
Note that Safari doesn't support onchange.
@@ -38,7 +38,13 @@ THE SOFTWARE.
-
+
+ Inline JavaScript to execute when the checkbox is clicked.
+ Deprecated because this attribute is incompatible with adding Content-Security-Policy to the Jenkins UI in the future.
+ Set 'id' or 'class' attributes as appropriate to look up this element in external Javascript files (e.g. adjuncts)
+ to add the desired behavior there (DOMContentLoaded event in static forms, Behaviour.specify if this element may be
+ dynamically added). See https://github.com/jenkinsci/jenkins/pull/6852 for an example.
+
If specified, this human readable text will follow the radio, and clicking this text also
toggles the radio.
diff --git a/test/src/test/java/hudson/model/ParametersTest.java b/test/src/test/java/hudson/model/ParametersTest.java
index 1b9e135ed9bf..996bdc6460f4 100644
--- a/test/src/test/java/hudson/model/ParametersTest.java
+++ b/test/src/test/java/hudson/model/ParametersTest.java
@@ -267,7 +267,7 @@ void xss() throws Exception {
assertAll(
() -> assertThat("parameters page should escape param name", text2, containsString("<param name>")),
() -> assertThat("parameters page should not leave param name unescaped", text2, not(containsString(""))),
- () -> assertThat("parameters page should escape param value", text2, containsString("<param value>")),
+ () -> assertThat("parameters page should escape param value", text2, containsString("<param value>")),
() -> assertThat("parameters page should not leave param value unescaped", text2, not(containsString(""))),
() -> assertThat("parameters page should mark up param description", text2, containsString("[param description]")),
() -> assertThat("parameters page should not leave param description unescaped", text2, not(containsString("")))