复选框选中的值在添加到DOM时更改

时间:2017-05-16 10:07:25

标签: javascript checkbox

我正在根据从其他地方提取的值动态创建一系列复选框,而我正在努力保持代码的通用性。复选框位于javascript中的大型UI部分,一次性添加到DOM中,以避免尽可能地锁定UI。

首先需要检查某些复选框,但是将HTMLElement的值设置为true不起作用。添加整个HTML部分后,不再选中复选框。

有谁知道为什么或有一个体面的工作?

这是一个很好的例子

"KeyboardAllowPaddle": false,
"KeyboardAssistant": false,
"KeyboardAutocapitalization": false,
"KeyboardAutocorrection": false,
"KeyboardCapsLock": false,
"KeyboardCheckSpelling": false,
"KeyboardPeriodShortcut": false,
"KeyboardPrediction": false,
"KeyboardShowPredictionBar": false

请不要JQuery!

1 个答案:

答案 0 :(得分:1)

您可以尝试使用setAttribute('checked', true) - 因为您使用.checked它实际上没有放置属性,然后因为您将其混合并附加到innerHTML,可能是你失去被检查状态的原因

.checked无法使用innerHTML



var check = document.createElement('input');
check.type = 'checkbox';
check.value = 'test';
check.checked = true

document.body.append(check);




使用innerHTML,已检查无效,因为实际上未设置任何属性,并且可能正在将现有内容更改为字符串以将新内容附加到:



var check = document.createElement('input');
check.type = 'checkbox';
check.value = 'test';
check.checked = true

document.body.append(check);
document.body.innerHTML += 'test'




手动设置属性应该有效



var check = document.createElement('input');
check.type = 'checkbox';
check.value = 'test';
check.setAttribute('checked', true);

document.body.append(check);
document.body.innerHTML += 'test'