diff --git a/code/FormField/UserFormsCheckboxSetField.php b/code/FormField/UserFormsCheckboxSetField.php
index a2d3996..a3e2682 100644
--- a/code/FormField/UserFormsCheckboxSetField.php
+++ b/code/FormField/UserFormsCheckboxSetField.php
@@ -3,6 +3,7 @@
namespace SilverStripe\UserForms\FormField;
use SilverStripe\Forms\CheckboxSetField;
+use SilverStripe\UserForms\Model\EditableFormField;
/**
* @package userforms
@@ -10,6 +11,25 @@ use SilverStripe\Forms\CheckboxSetField;
class UserFormsCheckboxSetField extends CheckboxSetField
{
+ /**
+ * If your project uses a custom UserFormsCheckboxSetField.ss, ensure that it includes
+ * `$Top.getValidationAttributesHTML().RAW` so that custom validation messages work
+ * For further details see
+ * templates/SilverStripe/UserForms/FormField/UserFormsCheckboxSetField.ss
+ *
+ * Use on a template with .RAW - single and double quoted strings will be safely escaped
+ *
+ * @return string
+ * @see EditableFormField::updateFormField()
+ */
+ public function getValidationAttributesHTML()
+ {
+ $attrs = array_filter(array_keys($this->getAttributes()), function ($attr) {
+ return !in_array($attr, ['data-rule-required', 'data-msg-required']);
+ });
+ return $this->getAttributesHTML(...$attrs);
+ }
+
/**
* jQuery validate requires that the value of the option does not contain
* the actual value of the input.
diff --git a/code/FormField/UserFormsOptionSetField.php b/code/FormField/UserFormsOptionSetField.php
new file mode 100644
index 0000000..c71d107
--- /dev/null
+++ b/code/FormField/UserFormsOptionSetField.php
@@ -0,0 +1,32 @@
+getAttributes()), function ($attr) {
+ return !in_array($attr, ['data-rule-required', 'data-msg-required']);
+ });
+ return $this->getAttributesHTML(...$attrs);
+ }
+}
diff --git a/code/Model/EditableFormField/EditableRadioField.php b/code/Model/EditableFormField/EditableRadioField.php
index 433a4c9..ee64641 100755
--- a/code/Model/EditableFormField/EditableRadioField.php
+++ b/code/Model/EditableFormField/EditableRadioField.php
@@ -2,7 +2,7 @@
namespace SilverStripe\UserForms\Model\EditableFormField;
-use SilverStripe\Forms\OptionsetField;
+use SilverStripe\UserForms\FormField\UserFormsOptionSetField;
use SilverStripe\UserForms\Model\EditableCustomRule;
/**
@@ -35,9 +35,9 @@ class EditableRadioField extends EditableMultipleOptionField
public function getFormField()
{
- $field = OptionsetField::create($this->Name, $this->Title ?: false, $this->getOptionsMap())
+ $field = UserFormsOptionSetField::create($this->Name, $this->Title ?: false, $this->getOptionsMap())
->setFieldHolderTemplate(EditableMultipleOptionField::class . '_holder')
- ->setTemplate('SilverStripe\\UserForms\\FormField\\UserFormsOptionSetField');
+ ->setTemplate(UserFormsOptionSetField::class);
// Set default item
$defaultOption = $this->getDefaultOptions()->first();
diff --git a/docs/en/troubleshooting.md b/docs/en/troubleshooting.md
index 8094b99..fdb5bb1 100644
--- a/docs/en/troubleshooting.md
+++ b/docs/en/troubleshooting.md
@@ -7,6 +7,12 @@ Check the below if you have any issues during installation or use
After installation make sure you have done a `dev/build` you may also need to flush the admin view by appending
`?flush=1` to the URL, e.g. `http://yoursite.com/admin?flush=1`
+## Checkbox or Radio group custom messages not showing
+
+If your project has a custom template for `UserFormsCheckboxSetField.ss` or `UserFormsOptionSetField.ss`, then you will need to ensure they include `$Top.getValidationAttributesHTML().RAW`. See
+* [UserFormsCheckboxSetField.ss](../../templates/SilverStripe/UserForms/FormField/UserFormsCheckboxSetField.ss)
+* [UserFormsOptionSetField.ss](../../templates/SilverStripe/UserForms/FormField/UserFormsOptionSetField.ss)
+
## UserForms EditableFormField Column Clean task
This task is used to clear unused columns from EditableFormField database tables.
diff --git a/templates/SilverStripe/UserForms/FormField/UserFormsCheckboxSetField.ss b/templates/SilverStripe/UserForms/FormField/UserFormsCheckboxSetField.ss
index b35cf41..52e691e 100644
--- a/templates/SilverStripe/UserForms/FormField/UserFormsCheckboxSetField.ss
+++ b/templates/SilverStripe/UserForms/FormField/UserFormsCheckboxSetField.ss
@@ -2,7 +2,8 @@
<% loop $Options %>