【发布时间】:2020-10-27 15:27:51
【问题描述】:
我正在使用 material-ui 复选框,我需要根据单击的其他复选框以编程方式更改复选框状态选中、未选中或取消确定。可以有一个我需要更改的复选框列表,我不想在反应中使用状态。
import React from 'react'
import Checkbox from '@material-ui/core/Checkbox';
export default class CheckboxesTest extends React.Component {
onChange = (e) => {
let cbs = document.getElementById("checkboxId").querySelectorAll("input[type='checkbox']");
for (let i = 0; i > cbs.length; i++)
cbs[0].checked = true;
}
render() {
return (
<div>
<Checkbox
defaultChecked
onChange={this.onChange}
/>
<div id="checkboxId">
<Checkbox />
<Checkbox />
</div>
</div>
)
}
}
当我使用浏览器默认复选框时,它可以工作,
import React from 'react'
import Checkbox from '@material-ui/core/Checkbox';
export default class CheckboxesTest extends React.Component {
onChange = (event) => {
let elem = document.getElementById("checkboxId").querySelectorAll("input[type='checkbox']");
for (let i = 0; i < elem.length; i++) {
elem[i].indeterminate = false
elem[i].checked = event.target.checked;
}
}
render() {
return (
<div>
<Checkbox
defaultChecked
onChange={this.onChange}
/>
<div id="checkboxId">
<input type="checkbox" />
<input type="checkbox" />
</div>
</div>
)
}
}
提前致谢
【问题讨论】:
标签: javascript html reactjs checkbox material-ui