diff --git a/addons/website_form/static/src/snippets/s_website_form/000.js b/addons/website_form/static/src/snippets/s_website_form/000.js
index 1d4a943b912709e14db4d0677cd0413e53f58b2f..2608b4a6a40f40f2cbffb7e7b18f515de7cd0137 100644
--- a/addons/website_form/static/src/snippets/s_website_form/000.js
+++ b/addons/website_form/static/src/snippets/s_website_form/000.js
@@ -65,7 +65,16 @@ odoo.define('website_form.s_website_form', function (require) {
             // Because, using t-att- inside form make it non-editable
             var $values = $('[data-for=' + this.$target.attr('id') + ']');
             if ($values.length) {
-                var values = JSON.parse($values.data('values').replace('False', '""').replace('None', '""').replace(/'/g, '"'));
+                const values = JSON.parse($values.data('values')
+                    // replaces `True` by `true` if they are after `,` or `:` or `[`
+                    .replace(/([,:\[]\s*)True/g, '$1true')
+                    // replaces `False` and `None` by `""` if they are after `,` or `:` or `[`
+                    .replace(/([,:\[]\s*)(False|None)/g, '$1""')
+                    // replaces the `'` by `"` if they are before `,` or `:` or `]` or `}`
+                    .replace(/'(\s*[,:\]}])/g, '"$1')
+                    // replaces the `'` by `"` if they are after `{` or `[` or `,` or `:`
+                    .replace(/([{\[:,]\s*)'/g, '$1"')
+                );
                 var fields = _.pluck(this.$target.serializeArray(), 'name');
                 _.each(fields, function (field) {
                     if (_.has(values, field)) {