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)) {