From 6ba7bf7b2f5bda81f50392cf1331a359b779c407 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Sat, 24 Aug 2019 17:12:26 +1200 Subject: [PATCH] =?UTF-8?q?FIX:=20Replace=20=E2=80=98.=E2=80=99s=20with=20?= =?UTF-8?q?=E2=80=98=5F=E2=80=99s=20in=20HTML=20IDs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The functioning of dot-syntax in form fields mean that .s are more likely to appear in names. This breaks javascript behaviour in HTML IDs and I believe is an invalid character for them. --- src/Forms/FormTemplateHelper.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Forms/FormTemplateHelper.php b/src/Forms/FormTemplateHelper.php index 227e248ed..a487ac44a 100644 --- a/src/Forms/FormTemplateHelper.php +++ b/src/Forms/FormTemplateHelper.php @@ -61,14 +61,17 @@ class FormTemplateHelper */ public function generateFieldID($field) { + // Don't include '.'s in IDs, they confused JavaScript + $name = str_replace('.', '_', $field->getName()); + if ($form = $field->getForm()) { return sprintf( "%s_%s", $this->generateFormID($form), - Convert::raw2htmlid($field->getName()) + Convert::raw2htmlid($name) ); } - return Convert::raw2htmlid($field->getName()); + return Convert::raw2htmlid($name); } }