Fix createElementFromAttrs bug (#31751)
The "false" value was not handled correctly, it would cause bugs in the future (fortunately, this behavior is not used in code yet).
This commit is contained in:
parent
d1283524b1
commit
e3678356e1
@ -10,7 +10,9 @@ test('createElementFromAttrs', () => {
|
|||||||
class: 'cls-1 cls-2',
|
class: 'cls-1 cls-2',
|
||||||
'data-foo': 'the-data',
|
'data-foo': 'the-data',
|
||||||
disabled: true,
|
disabled: true,
|
||||||
|
checked: false,
|
||||||
required: null,
|
required: null,
|
||||||
|
tabindex: 0,
|
||||||
});
|
});
|
||||||
expect(el.outerHTML).toEqual('<button id="the-id" class="cls-1 cls-2" data-foo="the-data" disabled=""></button>');
|
expect(el.outerHTML).toEqual('<button id="the-id" class="cls-1 cls-2" data-foo="the-data" disabled="" tabindex="0"></button>');
|
||||||
});
|
});
|
||||||
|
@ -297,7 +297,7 @@ export function createElementFromAttrs(tagName, attrs) {
|
|||||||
const el = document.createElement(tagName);
|
const el = document.createElement(tagName);
|
||||||
for (const [key, value] of Object.entries(attrs)) {
|
for (const [key, value] of Object.entries(attrs)) {
|
||||||
if (value === undefined || value === null) continue;
|
if (value === undefined || value === null) continue;
|
||||||
if (value === true) {
|
if (typeof value === 'boolean') {
|
||||||
el.toggleAttribute(key, value);
|
el.toggleAttribute(key, value);
|
||||||
} else {
|
} else {
|
||||||
el.setAttribute(key, String(value));
|
el.setAttribute(key, String(value));
|
||||||
|
Loading…
Reference in New Issue
Block a user