From 9aba15e71bf6ef15a626e69adeb1ae181fecf387 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Thu, 1 Aug 2024 17:52:07 +0800 Subject: [PATCH 1/2] fix --- web_src/js/utils/dom.test.ts | 4 +++- web_src/js/utils/dom.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/web_src/js/utils/dom.test.ts b/web_src/js/utils/dom.test.ts index d873484969181..13df82d9b49f9 100644 --- a/web_src/js/utils/dom.test.ts +++ b/web_src/js/utils/dom.test.ts @@ -10,7 +10,9 @@ test('createElementFromAttrs', () => { class: 'cls-1 cls-2', 'data-foo': 'the-data', disabled: true, + checked: false, required: null, + tabindex: 0, }); - expect(el.outerHTML).toEqual(''); + expect(el.outerHTML).toEqual(''); }); diff --git a/web_src/js/utils/dom.ts b/web_src/js/utils/dom.ts index 8d75c724ded80..956cff2d8f6de 100644 --- a/web_src/js/utils/dom.ts +++ b/web_src/js/utils/dom.ts @@ -297,7 +297,7 @@ export function createElementFromAttrs(tagName, attrs) { const el = document.createElement(tagName); for (const [key, value] of Object.entries(attrs)) { if (value === undefined || value === null) continue; - if (value === true) { + if (value === true || value === false) { el.toggleAttribute(key, value); } else { el.setAttribute(key, String(value)); From 82510da3ef85232fc88241af3f0e5c53ad986803 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Thu, 1 Aug 2024 21:38:55 +0800 Subject: [PATCH 2/2] use "typeof ... === 'boolean'" --- web_src/js/utils/dom.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_src/js/utils/dom.ts b/web_src/js/utils/dom.ts index 956cff2d8f6de..82e7b755a5cbe 100644 --- a/web_src/js/utils/dom.ts +++ b/web_src/js/utils/dom.ts @@ -297,7 +297,7 @@ export function createElementFromAttrs(tagName, attrs) { const el = document.createElement(tagName); for (const [key, value] of Object.entries(attrs)) { if (value === undefined || value === null) continue; - if (value === true || value === false) { + if (typeof value === 'boolean') { el.toggleAttribute(key, value); } else { el.setAttribute(key, String(value));